我有兩張表,其中有發票數據,如日期發票號。供應商等。第一個表與另一個不同,這就是爲什麼他們創建爲分離表。但是這兩個表具有相同的列,我想要UNION和GROUP BY。按聯盟分組查詢
當我用一張桌子做東西時一切正常,但是在嘗試使用UNION時,如果按客戶和國家進行分組,我會得到相互分離的數據組,例如,我得到兩個國家(BE和以下也是BE)相同客戶。結果應該只給我提供總計VATamount的一個國家。
我在網上閱讀了一些文章,但它並沒有幫助我解決我的問題。到目前爲止,我的語法如下:
SELECT [Faktury - od nas].customerKey, [Faktury - od nas].InvoiceCountry, Sum([Faktury - od nas].VATamount) AS SumaOfVATamount
FROM [Faktury - od nas]
GROUP BY [Faktury - od nas].customerKey, [Faktury - od nas].InvoiceCountry
UNION
SELECT [Faktury - od nich].customerKey, [Faktury - od nich].InvoiceCountry, Sum([Faktury - od nich].VATamount) AS SumaOfVATamount
FROM [Faktury - od nich]
GROUP BY [Faktury - od nich].customerKey, [Faktury - od nich].InvoiceCountry
到目前爲止輸出:
01-72 ---這樣--- 125.00
01-72 ---這樣--- 180, 07
11-54 --- DE --- 206,34
11-54 --- DE --- 100,00
23-65 --- FR --- 23,00
23- 65 --- FR --- 100,76
所需輸出T:
01-72 ---這樣--- 305,07
11-54 --- DE --- 306,34
23-65 --- FR --- 123,76
編輯: 我在查詢中做了一些更改,發現它按預期的方式停止了分組。你能幫我嗎?
SELECT [E100 Key], [Nazwa Klienta], [Kraj], [Okres], Sum(Format(Round([Kwota1],2),'Standard')) AS [Kwota], [Waluta], [Status], [Rozliczenie]
FROM(
SELECT [Faktury - od nas].customerKey AS [E100 Key], [Faktury - od nas].CustomerName AS [Nazwa Klienta], [Faktury - od nas].InvoiceCountry AS Kraj, [Faktury - od nas].Okres AS Okres, Sum([Faktury - od nas].VATamount) AS Kwota1, [Faktury - od nas].Currency AS Waluta, [Faktury - od nas].Status AS Status, [Faktury - od nas].[Transtax invoice No] AS Rozliczenie
FROM [Faktury - od nas]
GROUP BY [Faktury - od nas].customerKey, [Faktury - od nas].CustomerName, [Faktury - od nas].InvoiceCountry, [Faktury - od nas].Okres, [Faktury - od nas].Currency, [Faktury - od nas].Status, [Faktury - od nas].[Transtax invoice No]
HAVING ((([Faktury - od nas].Okres) Is Not Null))
UNION
SELECT [Faktury - od nich].customerKey AS [E100 Key], [Faktury - od nich].CustomerName AS [Nazwa Klienta], [Faktury - od nich].InvoiceCountry AS Kraj, [Faktury - od nich].Okres AS Okres, Sum([Faktury - od nich].VATamount) AS Kwota1, [Faktury - od nich].Currency AS Waluta, [Faktury - od nich].Status AS Status, [Faktury - od nich].[Transtax invoice No] AS Rozliczenie
FROM [Faktury - od nich]
GROUP BY [Faktury - od nich].customerKey, [Faktury - od nich].CustomerName, [Faktury - od nich].InvoiceCountry, [Faktury - od nich].Okres, [Faktury - od nich].Currency, [Faktury - od nich].Status, [Faktury - od nich].[Transtax invoice No]
HAVING ((([Faktury - od nich].Okres) Is Not Null))
)GROUP BY [E100 Key], [Nazwa Klienta], [Kraj], [Okres], [Waluta], [Status], [Rozliczenie];
查看最高評級回答:http://stackoverflow.com/questions/8572821/group-by-with-union-mysql-select-query?rq=1。應該也適用於ACCESS – asdev
實際上發現這個:http://stackoverflow.com/questions/26606949/group-by-with-union昨天我試了一下,它沒有工作。但再次嘗試並且工作得很好。對不起,打擾了。 – lowak
@asdev請看看閱讀編輯。 – lowak