我有兩個表那些跟隨排序按日期在SQL
表名:stockIn
+----+-------------+------------+------------+
| Id | date | Itemname | stockInqty |
+====+=============+============+============+
| 1 | 12/12/2014 | testitem | 12 |
| 2 | 14/12/2014 | testitem11 | 20 |
+----+-------------+------------+------------+
表名稱:缺貨
+----+------------+-------------+-------------+
| Id | date | Itemname | stockOutqty |
+====+============+=============+=============+
| 1 | 12/12/2014 | testitem | 7 |
| 2 | 13/12/2014 | testitem11 | 15 |
+----+------------+-------------+-------------+
我需要一個綜合作用的結果兩個日期期間的測試項目記錄的順序爲
+------------+-----------+-------------+-------------+
| date | itemname | stockInqty | stockOutqty |
+============+===========+=============+=============+
| 12/12/2014 | testitem | 12 | 7 |
| 13/12/2014 | testitem | NIL | 15 |
| 14/12/2014 | testitem | 20 | NIL |
+------------+-----------+-------------+-------------+
我得到了這樣的查詢
SELECT t1.`date`
, t1.itemname
, t1.stockInqty AS stockInqty
, t2.stockInqty AS stockOutqty
FROM tbl1 t1 LEFT JOIN tbl2 t2 ON t1.`date` = t2.`date`
AND t1.itemname = t2.itemname
UNION
SELECT t2.`date`
, t2.itemname
, t1.stockInqty AS stockInqty
, t2.stockInqty AS stockOutqty
FROM tbl1 t1 RIGHT JOIN tbl2 t2 ON t1.`date` = t2.`date`
AND t1.itemname = t2.itemname
查詢的結果會是這樣
+-------------+------------+------------+-------------+
|date | itemname | stockInqty | stockOutqty |
+=============+============+============+=============+
| 12/12/2014 | testitem | 12 | 7 |
| 14/12/2014 | testitem | 20 | NIL |
| 13/12/2014 | testitem | NIL | 15 |
+-------------+------------+------------+-------------+
結果拳頭表中的數據的基礎上,有序。
我需要的結果應該以日期爲基礎進行排序(即第一個記錄必須在12/12/2014
之上,第二個記錄在13/14/2014
第三個在14/12/2014
)。
在此先感謝。
添加在按日期遞增 – 2014-09-23 06:12:00
最後爲了你有兩個數據,需要一個進行排序單一輸出 - **不可能,因爲如果您將對第1列進行排序**數據將以此爲基礎進行排序 - 「NIL,12/12,13,12」因此14/12數據將位於第一行。 – Murtaza 2014-09-23 06:40:13
感謝您編輯烏拉斯,這個問題的全部意圖都迷失了... – 2014-09-23 07:00:38