Bonjour.
J'ai tenté d'effectuer une belle requête qui échouait. Bin quoi? Ça peut arriver à tout le monde !
J'ai donc découpé ma requête en sous requêtes qui créaient des tables temporaires. Voici en gros le code. des sous requêtes. (Elle s'effectuent avec succès.)
La seconde sous requête fonctionne tout aussi bien. elle est très semblables ET le nom des sous champs sont les mêmes que la première soustable1 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 sql = "" sql = sql & "SELECT " sql = sql & "fdbase.champ1 AS 'Funds'," sql = sql & "SUM(podmst.champ2*iftchg.champ3) AS 'MV'," sql = sql & "pohmst.champ4 AS 'PortfDate' " sql = sql & "INTO #soustable1 " sql = sql & "FROM " sql = sql & "podmst, pohmst, fdbase, iftchg " sql = sql & "WHERE " sql = sql & "(blah=blah') AND " ... sql = sql & "(blah = (SELECT MAX(blah) FROM iftchg)) AND " sql = sql & "(blah = blah) " sql = sql & "GROUP BY(fdbase.champ1), (pohmst.champ4) " sql = sql & "ORDER BY(fdbase.champ1)" con.Execute sql
Donc, ces deux sous-tables sont créées et contiennent les données désirées et les mêmes noms de champs, le même format bien entendu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 sql = "" sql = sql & "SELECT " sql = sql & "fdbase.champ1 'Funds'," sql = sql & "SUM(podmst.champ2) AS 'MV'," sql = sql & "pohmst.champ4 AS 'PortfDate' " sql = sql & "INTO #soustable2 " sql = sql & "FROM " sql = sql & "podmst,pohmst,fdbase " sql = sql & "WHERE " ... con.Execute sql
Je veux faire une union. Ca aussi ca marche.
Toutefois, ce que je veux faire, c'est :(SELECT * FROM #soustable1
UNION
SELECT * FROM #soustable2)
Lorsuqe le champ1 (Funds) est le même, fusionner les enregistrements en sommant le deuxième champ (MV) comme suit :
j'ai tenté de remplacer la première ligne par SELECT *.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT merged.Funds, Sum(merged.MV), merged.PortfDate FROM (SELECT * FROM #soustable1 UNION SELECT * FROM #soustable2) As merged WHERE merged.Funds IN (UnelistedeFundsQuiExiste) GROUP BY merged.Funds, merged.PortfDate
même problème, lorsque je passe par vba je recois une error odbc, si je passe directement par une requête dans la base de données Access m'indique que j'ai une syntaxe invalide dans mon FROM (comme si l'union était invalide, mais pourtant l'union isolée fonctionne parfaitement).
Quelqu'un peut m'aider?
Merci beaucoup
Partager