2017-05-26 162 views
0

我有一個每月表和每日表。我需要比較基於用戶ID,交易提交日期,總金額(即交易提交日期和用戶ID)的記錄計數,我需要知道記錄的計數和總金額的總和。SQL加入聚合函數查詢

Transaction submit date  Cust Number Total amount 
1/1/2017      700   0.7 
1/1/2017      700   0.7 
1/1/2017      700   0.7 
1/1/2017      700   0.7 
1/1/2017      700   0.7 
1/1/2017      700   0.7 
1/1/2017      700   0.7 
1/1/2017      797   0 
1/1/2017      797   1.4 
1/1/2017      797   1.6 

如果我有這樣的表。需要聚集總量的基礎上,交易提交日期和行數即

1/1/2017  700 7  4.9 

像明智的做日常&月表和想要的結果。 因此,我知道特定的交易日期,每月和每天特定客戶ID的行數是多少。 我可以單獨爲兩個表格導出結果來優化和比較。但是,想知道我們是否可以在單個查詢中處理這個問題。

+0

所以在*月*表中您還有*每日*記錄?或者,你會如何比較* date *的結果?我曾希望您要求每月比較彙總的數據。 –

回答

0
SELECT DATE 
     ,Number 
     ,Count(Total) 
     ,SUM(Total) 
    FROM myTable 
    GROUP BY DATE 
     ,Number 
+0

我有兩張桌子。我需要比較結果。我明白查詢只能處理一個表。 –

+0

你能提供每個表的模式嗎?可以使用CTE – apomene

+0

完成表1:order_table_Methysly 列:Transaction_submit_date,Customer_number,Amount。 表2:order_table_Daily 列:Transaction_submit_date,Customer_number,Amount。 相同的記錄進入這些表格。但正如名字所暗示的那樣,每天更新一張桌子。另一個月。 我必須比較交易提交日期和客戶編號兩個表,然後顯示行數和總數。 –

0

請試試這個,克里特島每月和每日CTES並加入他們,這將給予平等的記錄。

With Montyly as 
(
SELECT Montyly 
     ,Number 
    ,Count(Total) MCount 
    ,SUM(Total) MTotal 
    FROM myTable 
    GROUP BY DATE 
    ,Number 
), 
With Daily as 
(
SELECT DATE 
    ,Number 
    ,Count(Total) DCount 
    ,SUM(Total) DTotal 
FROM myTable 
GROUP BY DATE 
    ,Number 
) 

select * from 
Montyly M inner join Daily D on 
M.Date=D.Date and M.Number=D.Number and M.MCount=D.DCount and M.MTotal.D.DTotal 
+0

你好, 我想按照你的輸入(如上所述)運行查詢。 但是,有一個錯誤說, 「Msg 156,Level 15,State 1,Line 10」 關鍵字'With'附近的語法不正確。 Msg 319,Level 15,State 1,Line 10 關鍵字'with'附近的語法不正確。如果此語句是公用表表達式,xmlnamespaces子句或變更跟蹤上下文子句,則前面的語句必須以分號結尾。 –