Re: [SQL ] PIVOT 語法問題
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
討論串 (同標題文章)
Database 近期熱門文章
PTT數位生活區 即時熱門文章