我有兩個表,一個包含生產數據,另一個包含預測數據。我加入這兩張表格,將實際生產數據與預測數據進行比較。 我的示例表如下:左連接SQL後數據不匹配
**Prod Tbl**
Product Plant pmonth pyear quantity
B007 2 January 2014 45
B007 2 February 2014 270
B007 2 March 2014 270
B007 2 April 2014 45
B007 2 May 2014 90
B007 2 May 2014 90
B007 2 June 2014 90
B007 2 June 2014 90
B007 2 July 2014 135
B007 2 July 2014 45
B007 2 August 2014 135
B007 2 August 2014 135
B007 2 July 2015 90
B007 2 August 2014 135
B007 2 September 2014 135
B007 2 September 2015 135
B007 2 October 2015 90
B007 2 September 2014 135
B007 2 September 2014 90
B007 2 September 2014 90
B007 2 November 2014 254
B007 2 May 2016 90
B007 2 August 2016 135
B007 2 October 2016 87
**Forecast Tbl**
Product Plant Fmonth Fyear Fqty
B007 2 July 2017 100
B007 2 August 2017 100
B007 2 September 2017 100
B007 2 October 2017 100
B007 2 Novenmber 2017 100
B007 2 December 2017 100
查詢用來連接:
Select a.Product,
a.plant,
b.pmonth,
b.pyear,
coalesce(b.quantity,0) as quantity,
a.fmonth,
a.fyear,coalesce(a.fqty,0) as fqty
from
Frcast_Tbl as a
left join on Prod_Tbl as b on (a.Product = b.Product
and a.Plant = b.plant
and b.pMonth = a.fMonth);
結果: 加入
Product Plant Pmonth Pyear Quantity Fmonth Fyear fqty
B007 2 July 2014 180 July 2017 100
B007 2 July 2015 90 July 2017 100
B007 2 August 2014 405 August 2017 100
B007 2 August 2016 315 August 2017 100
B007 2 September 2014 450 September 2017 100
B007 2 September 2015 135 September 2017 100
B007 2 October 2016 177 October 2017 100
B007 2 October 2015 90 October 2017 100
B007 2 November 2014 356 November 2017 100
B007 2 December 2016 90 December 2017 100
B007 2 January 2015 90 January 2018 100
B007 2 January 2016 90 January 2018 100
B007 2 January 2014 45 January 2018 100
B007 2 January 2017 90 January 2018 100
B007 2 February 2014 270 February 2018 99
B007 2 March 2014 270 March 2018 101
B007 2 March 2017 90 March 2018 101
B007 2 April 2014 45 April 2018 100
B007 2 May 2016 90 May 2018 100
B007 2 May 2014 180 May 2018 100
B007 2 May 2017 90 May 2018 100
過濾特定一年後更好地解釋問題
Producr plant pmonth pyear quantity fmonth fyear fqty
B007 2 August 2016 315 August 2017 100
B007 2 October 2016 177 October 2017 100
B007 2 December 2016 90 December 2017 100
所需的表
Product Plant Pmonth Pyear Quantity fmonth fyear fqty
B007 2 January 2016 90 null null 0
B007 2 May 2016 90 null null 0
B007 2 June 2016 270 null null 0
B007 2 null null 0 July 2017 100
B007 2 August 2016 315 August 2017 100
B007 2 null null 0 September 2017 100
B007 2 October 2016 177 October 2017 100
B007 2 null null 0 November 2017 100
B007 2 December 2016 90 December 2017 100
什麼我的查詢做的是,它使用LEFT JOIN聯接項目,廠房及一個月,但我想我得到的表格中顯示兩個督促所有月份和frcast,如果找不到月份,則顯示null或零。請幫忙。
使用FULL加入而不是左方加入 –
您正在使用哪個[DBMS](https://en.wikipedia.org/wiki/DBMS)產品? Postgres的?甲骨文? –
看起來像Mysql –