连接两个具有日期范围的表

时间:2018-02-13 01:31:19

标签: vb.net

我有两张桌子。

y

我想要这样的输出。我正在使用OLEDB.please help.TIA

Table A                      Table B  
 DATE         QTYA             DATE         QTYB  
--------------------         --------------------  
 Jan1          5                Jan1          6  
--------------------         --------------------  
 Jan2          10               Jan3          10  

1 个答案:

答案 0 :(得分:0)

您可以结合使用union和pivot查询来实现此目的:

SELECT
    DATE,
    MAX(CASE WHEN source = 'A' THEN QTY END) AS QTYA,
    MAX(CASE WHEN source = 'B' THEN QTY END) AS QTYB
FROM
(
    SELECT DATE, QTYA AS QTY, 'A' AS source
    FROM TableA
    UNION ALL
    SELECT DATE, QTYB, 'B'
    FROM TableB
) t
GROUP BY DATE;

这假定您在输出中预期的日期显示在A和/或B表中。如果您希望某些日期覆盖数据缺失,那么您可能需要创建并加入日历表。