2014-03-07 45 views
0

我試圖在校驗碼相同時獲取數據行。總和數據行

select 
chkdetail_t.check_acct, 
chkheader_t.acct_number, 
chkdetail_t.check_number, 
    SUM(CASE WHEN chkdetail_t.check_number = chkdetail_t.check_number THEN chkdetail_t.amount ELSE NULL END) AS chek_total, 
convert(VARCHAR(10),CAST(chkdetail_t.check_date as datetime), 101) AS chk_date, 
chkdetail_t.amount, 
chkdetail_t.vend_name, 
chkdetail_t.chk_status, 
chkdetail_t.reconsiled, 
chkdetail_t.chk_type 


from dbo.chkdetail_t 
join dbo.chkheader_t 
on chkheader_t.check_acct = chkdetail_t.check_acct 


where chkdetail_t.check_acct = 'HUNTINGTON' 
and chkdetail_t.chk_status not in ('V', 'R') 
and chkdetail_t.chk_type != 'R' 
and chkdetail_t.reconsiled = 0 

group by chkdetail_t.check_acct, 
chkheader_t.acct_number, 
chkdetail_t.check_number, 
chkdetail_t.check_date, 
chkdetail_t.amount, 
chkdetail_t.vend_name, 
chkdetail_t.chk_status, 
chkdetail_t.reconsiled, 
chkdetail_t.chk_type 

check_number chek_total 
065757   50.00 
065757   522.20 
065757   581.70 
065757   4492.88 
065757   4832.92 

我需要掃描從上到下的check_number行,發現彼此相當,所以我可以計算出每個檢查數量的總和的人。

+0

我不能完全只見樹木不見森林,但我懷疑你想'GROUP BY'。 –

+0

嗨,歡迎來到Stack Overflow。我不清楚你的問題的本質是什麼。您的查詢是否給您提供錯誤訊息?如果是這樣,錯誤是什麼?否則,查詢的結果與您期望的結果有什麼不同?請更新您的問題,並提供更多關於問題性質的詳細信息,我們很樂意提供幫助。 –

+0

我很抱歉大家。我將發佈一張解釋所有內容的圖片,但我還沒有足夠的點來顯示圖片。我想要做的是取一個重複多行的支票號碼,然後總計相應的金額。我們可以獲得多個供應商發票,我們將用一張支票付款。這就是檢查號碼重複的原因。所以我試圖爲每個支票編號創建一個總數。要做到這一點,我需要設置一個條件如果Check_number = Check_number那麼總結相應的數量來創建一個總數。這有意義嗎? –

回答

-1
SELECT T.Check_Number, SUM(T.amount) 
FROM chkdetail_t AS D 
JOIN cheheader_t AS H 
    ON H.check_acct = T.check_acct 
GROUP BY T.check_Number 
+0

我正在使用錯誤的列,誰知道這是他想要的。令人困惑的問題。 –

+0

再次抱歉。我在上面提供了更多細節。 –

+0

好吧,我會再試一次...我更新了我的答案...不知道我是否理解。但是這個查詢會將頭部加入詳細信息中,然後求和詳細信息 –