0
我的前言說我是SQL的新手,並且由於堆棧溢出而在工作中學習。需要幫助執行從多個表的數據透視表
我正在運行從多個表(共3)查詢,我試圖獲得每行唯一標識符的結果。 1個表項有多個返回值,我可以將它寫到它們自己的列中作爲最大命令顯示的位置;但是,它仍然爲相同的標識符返回多行。
這是我到目前爲止有:
SELECT tbl.1.field as ID, tbl.2.field as Name, tbl.2.fieldb as Product,
COUNT(*) AS ConfirmedSales
MAX(CASE WHEN tbl.3.field = 'Product1' then 1 else 0 end) as CustomCol1
MAX(CASE WHEN tbl.3.field = 'Product2' then 1 else 0 end) as CustomCol2
FROM tbl.2
LEFT JOIN tbl.2 on tbl.2.x = tbl.1.x
INNER JOIN tbl.3 on tbl.2.x = tbl.3.x
WHERE ((tbl.1.date between '01/01/2014 00:00:00' and 06/30/2014 23:59:59'))
GROUP BY tbl.1.field, tbl.2.field, tbl.2.fieldb
返回結果如下:
Row |ID |Name |CustomCol1 |CustomCol2
1 |8048 |Jon Smith |1 |0
2 |8048 |Jon Smith |0 |1
3 |4044 |Max Williams |0 |0
我想對於結果CustomCol1和CustomCol2共享同一行,如果該ID是相同。這可能嗎?
除了COUNT(*)和MAX()字段之間缺少逗號的語法錯誤,並且您的「tbl.1」等表名引用示例試圖隱藏數據庫名稱,它應該可以工作,但不是顯示您的設置中的計數(*)列結果。 – DRapp
這兩個自定義列的1和0是什麼意思?如果有更好的方法來給你你需要的東西,我只是好奇而已。 –