0
A
回答
2
也許這樣?
Select
ID,
max(case when MYDATE = '20160105 10:00:00' then PRICE else 0 end),
max(case when MYDATE = '20140805 10:00:00' then PRICE else 0 end),
max(case when MYDATE = '20170215 10:00:00' then PRICE else 0 end)
FROM
(
select ID, PRICE FROM TABLE1 WHERE MYDATE in ('20160105 10:00:00', '20140805 10:00:00', '20170215 10:00:00')
UNION ALL
SELECT ID, PRICE FROM TABLE2 WHERE MYDATE in ('20160105 10:00:00', '20140805 10:00:00', '20170215 10:00:00')
) A
group by ID
猜測會更容易些,如果你提供的任何例子...
0
你可以避開(),使用A.ID的加入,這可能會產生一些好處的性能
Select A.ID, A.[2016 Price], B.[2014 Price], C.[2017 Price]
FROM
(
select ID, PRICE [2016 Price] FROM TABLE1 WHERE MYDATE = 2016-01-05 10:00:00
UNION
SELECT ID, PRICE FROM TABLE2 WHERE MYDATE = 2016-01-05 10:00:00
) A
INNER JOIN
(
select ID, PRICE [2014 Price] FROM TABLE1 WHERE MYDATE = 2014-08-05 10:00:00
UNION
SELECT ID, PRICE FROM TABLE2 WHERE MYDATE = 2014-08-05 10:00:00
) B ON A.ID =B.ID
INNER JOIN
(
select ID, PRICE [2017 Price] FROM TABLE1 WHERE MYDATE = 2017-02-15 10:00:00
UNION
SELECT ID, PRICE FROM TABLE2 WHERE MYDATE = 2017-02-15 10:00:00
) ON A.ID =C.ID
相關問題
- 1. 內部加入殺死查詢性能
- 2. SQL聯合查詢
- 3. SQL,聯合查詢
- 4. SQL聯盟/加入查詢
- 5. SQL加入Vs SQL子查詢(性能)?
- 6. 查詢聯合查詢
- 7. Sql插入查詢性能
- 8. SQL Server查詢性能 - 普通加入VS子查詢
- 9. 加入性能較差的SQL查詢
- 10. SQL查詢性能
- 11. SQL查詢性能
- 12. SQL查詢性能
- 13. SQL Server的查詢性能查詢表
- 14. 帶查詢SQL查詢性能
- 15. SQL lite聯合查詢
- 16. 錯誤聯合SQL查詢
- 17. Sql聯合查詢幫助
- 18. SQL查詢 - 聯合NOW()
- 19. 聯合查詢
- 20. 聯合查詢
- 21. SQL聯合查詢不正確加總
- 22. SQL查詢 - 加入
- 23. 查詢Sql加入
- 24. 在mysql中聯合查詢
- 25. 複雜的加入/聯合查詢
- 26. 聯合並加入1個查詢?
- 27. 如何加入/聯合查詢
- 28. SQL查詢「串聯上加入」
- 29. 卡在SQL加入查詢
- 30. SQL查詢與聯接到Linq查詢
每個單獨的查詢是否也慢?你有ID列的索引嗎?順便說一句,我認爲你需要使用PIVOT而不是寫這樣的查詢。 – FLICKER
您應該從ID開始,如果您不希望table1和table2之間有重複的ID,您可以用Union全部替換Union – NotCaring
@ FLICKER:謝謝。我有一個ID的索引。是否可以通過樞軸。好心建議 –