我正在使用Microsoft Sql Server管理工作室。SQL查詢SUM()和GROUP BY表中的2列
我爲創建特定類型發票的稅務報表而混雜成功。
我有低於6%的金額,其他金額低於13.5%,最後金額有6%和13.5%的完整總額。
我在結果中得到了我的答案,但顯示了每個發票的兩個不同的行。一個是6%的值,另一個是13.5%的值。
我需要以某種方式將這兩行合併到每個發票的單一行中。
我的SQL查詢如下:
SELECT tran_no ,
tran_date ,
(SELECT SUM(edetail_amt)
WHERE edetail_taxid = '6008U_='
) AS '6% amt' ,
(SELECT SUM(edetail_per)
WHERE edetail_taxid = '6008U_='
) AS '6% vat' ,
(SELECT SUM(edetail_amt)
WHERE edetail_taxid = '6008U_>'
) AS '13.5% amt' ,
(SELECT SUM(edetail_per)
WHERE edetail_taxid = '6008U_>'
) AS '13.5% vat' ,
(SELECT SUM(edetail_amt + edetail_per)
WHERE edetail_taxid IN ('6008U_=', '6008U_>')
) AS 'Net Total'
FROM h_edetail
INNER JOIN h_tran ON edetail_tranid = tran_kid
WHERE tran_trantype = 'PI'
AND tran_date = '2016-11-03 00:00:00.000'
GROUP BY tran_no ,
tran_date ,
edetail_taxid
ORDER BY tran_no;
與結果一起查詢的截圖如下:
發佈查詢文本 –
選擇tran_no,tran_date,(SELECT SUM(edetail_amt),其中edetail_taxid = '6008U_ =')作爲 'AMT 6%', (SELECT SUM( 'select sum(edetail_per)where edetail_taxid ='6008U_ =')as'6%vat', (select sum(edetail_amt)where edetail_taxid ='6008U_>')as '13.5%amt', (select sum(edetail_per)where edetail_taxid =' ('6008U _ =','6008U_>'))中的edetail_taxid作爲'Net Total' from h_edetail內部連接h_tran on edetail_tranid = tran_kid在'13.5%vat', (select sum(edetail_amt + edetail_per)其中tran_trantype ='PI'和 tran_date ='2016-11-03 00:00:00.000'組by tran_no,tran_date,edetail_ta xid order by tran_no – Adnan
查詢中沒有任何內容被稱爲「發票」,所以問題完全不清楚。這就是爲什麼樣本數據和預期結果如此重要。 –