2016-01-11 28 views
0

下面的SQL查詢有語法錯誤,我該如何解決?在ADO excel中多次左連接

SELECT [CREDITORS$].[Account Code], [CREDITORS$].[Name], Sum([CREDITORS$]![Base Amount]*-1) AS BillAmt," & _ 
     "SUM([SERVICETAX$].[Base Amount]) AS STAMT, Sum(([CREDITORS$]![Base Amount]*-1)-[SERVICETAX$]![Base Amount]) AS TDS " & _ 
     "FROM [CREDITORS$] LEFT JOIN [SERVICETAX$] ON [CREDITORS$].[Transaction Reference]=[SERVICETAX$].[Transaction Reference]" & _ 
     "LEFT JOIN [MASTER$] ON [MASTER$].[Account Code]=[CREDITORS$].[Account Code]" & _ 
     "GROUP BY [CREDITORS$].[Account Code], [CREDITORS$].[Name]; 
+0

什麼語法錯誤準確地說? 而查詢的正確格式可以使其他人更容易理解。 – theDima

+0

使用'debug.print'打印出您的查詢,然後查看您的答案。 –

回答

1

你需要在之前LEFT JOINGROUP BY,這是在查詢錯過添加空間動態查詢。所以在行尾添加空格將會起作用。

所以下面的查詢將工作:

"SELECT [CREDITORS$].[Account Code], [CREDITORS$].[Name], Sum([CREDITORS$]![Base Amount]*-1) AS BillAmt, " & _ 
"SUM([SERVICETAX$].[Base Amount]) AS STAMT, Sum(([CREDITORS$]![Base Amount]*-1)-[SERVICETAX$]![Base Amount]) AS TDS " & _ 
"FROM [CREDITORS$] LEFT JOIN [SERVICETAX$] ON [CREDITORS$].[Transaction Reference]=[SERVICETAX$].[Transaction Reference] " & _ 
"LEFT JOIN [MASTER$] ON [MASTER$].[Account Code]=[CREDITORS$].[Account Code] " & _ 
"GROUP BY [CREDITORS$].[Account Code], [CREDITORS$].[Name];" 

你實際查詢將返回如下面的,所以不會有適當的間距。

SELECT [CREDITORS$].[Account Code], [CREDITORS$].[Name], Sum([CREDITORS$]![Base Amount]*-1) AS BillAmt, SUM([SERVICETAX$].[Base Amount]) AS STAMT, Sum(([CREDITORS$]![Base Amount]*-1)-[SERVICETAX$]![Base Amount]) AS TDS FROM [CREDITORS$] LEFT JOIN [SERVICETAX$] ON [CREDITORS$].[Transaction Reference]=[SERVICETAX$].[Transaction Reference]LEFT JOIN [MASTER$] ON [MASTER$].[Account Code]=[CREDITORS$].[Account Code]GROUP BY [CREDITORS$].[Account Code], [CREDITORS$].[Name];