看板 Database 關於我們 聯絡資訊
select 日期, isnull([現金],0) + isnull([信用卡],0) as 金額, isnull([現金],0) as 現金, isnull([信用卡],0) as 信用卡 from ( select left(Orderno,8) as 日期, sum(付款金額) as 付款金額, 付款方式 from B group by left(Orderno,8),付款方式 ) as t pivot ( sum(付款金額) for 付款方式 in ([現金],[信用卡]) ) as pvt ※ 引述《laler (Jacky)》之銘言: : 資料庫名稱:Ms-SQL : 資料庫版本:2008 : 內容/問題描述: : 資料Table A : Orderno Time Price : ------------------------------- : 2018110101 20181101 100 : 2018110102 20181101 200 : 2018110201 20181102 300 : 2018110202 20181102 400 : 資料Table B : Orderno 付款方式 付款金額 : ------------------------------- : 2018110101 現金 100 : 2018110102 信用卡 100 : 2018110102 現金 100 : 2018110201 現金 300 : 2018110202 信用 400 : 想要達查詢是 : 日期 金額 現金 信用卡 : ------------------------------- : 20181101 300 200 100 : 20181102 700 300 400 : 用Access語法可以成功 : transform 付款金額 : Select 日期,Sum(Price) from A join B on A.orderno = B.orderno : Group by 日期 : PIVOT 付款方式 : 但是SQL語法我試出來的結果是 : 日期 金額 現金 信用卡 : ------------------------------- : 20181101 200 200 null : 20181101 100 null 100 : 20181102 300 300 null : 20181102 400 null 400 : 以下是我目前的語法 : Select * from : (Select 日期,Sum(Price),Sum(付款金額) : from A join B on A.orderno = B.orderno : Group by 日期,付款方式 : ) as temp : PIVOT (SUM(付款金額) : FOR 付款方式 : IN ([現金],[信用卡])) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.168.16.234 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1542197056.A.9B1.html