我有兩個相關產品表格和第三個不相關的時期表格,我想用它們來確保我得到一整套返回的數據。將兩個表格與第三個無關表格結合
我不想存儲每個產品的所有空閒時段,只是出售時段。
首先,我們的財務表,這是所有時期的「主人」:
ID | PERIOD
------------
1 | Jan
2 | Feb
3 | Mar
然後將產品和銷售表
ID | Code
------------
1 | ABC
2 | XYZ
Product_ID | Period_ID | Sales
------------------------------
1 | 1 | 5
2 | 1 | 4
2 | 3 | 7
我想制定一個查詢以便我可以返回每個期間的結果,而不管它們是否有銷售額:
Product_ID | Product_Code | Period_ID | Period_Name | Sales
-----------------------------------------------------------
1 | ABC | 1 | Jan | 5
1 | ABC | 2 | Feb | 0
1 | ABC | 3 | Mar | 0
2 | XYZ | 1 | Jan | 4
2 | XYZ | 2 | Feb | 0
2 | XYZ | 3 | Mar | 7
我需要查詢儘可能通用,它需要針對Firebird(1.5)和MS SQL。如果這是不可能的,那麼MS SQL是首選。
次要的是,如果銷售表中有一段時間以上的條目,總數是否可以合計?即:
Product_ID | Period_ID | Sales
------------------------------
1 | 1 | 1
1 | 1 | 1
能夠爲這一特定的線路返回
Product_ID | Period_ID | Sales
------------------------------
1 | 1 | 4
。
我試圖做一個連接,但我看不到如何讓它加入每個產品的週期表中的信息。
謝謝,這對MS SQL有效。火鳥1.5沒有CROSS JOIN命令,有沒有更不可知的方式來做到這一點?另外什麼是最好的索引優化,它首次運行速度很慢。 – Darren
而不是'CROSS JOIN'嘗試:'從財務f,產品p'。 –
或'從財務內部加入產品p ON 1 = 1' –