如何从SQL查询插入虚拟行

时间:2019-04-15 16:37:38

标签: sql

我正在将行从另一张表插入空白表。我正在从excel插入行。

我从多个表中进行查询,结果如下:具有以下数据示例

现在我想在数据下方插入,但添加带有虚拟记录的缺失日期记录

Date           Loc    count
01-01-2019     001    1
01-02-2019     001    4 
01-03-2019     001    7 
01-01-2019     002    2

现在,我正在寻找一些查询,这些查询将提取这些数据并为位置2缺少一月的第二天和第三天添加虚拟记录。

1 个答案:

答案 0 :(得分:0)

如果所有日期和想要的所有位置都在该表的某个位置,则可以使用交叉连接生成所有可能的组合,然后将表保留在该表上以获取组合的计数。

SELECT x1.date,
       x2.loc,
       coalesce(t3.count, 0) count
       FROM (SELECT DISTINCT
                    t1.date
                    FROM elbat t1) x1
            CROSS JOIN (SELECT DISTINCT
                               t2.loc
                               FROM elbat loc) x2
            LEFT JOIN elbat t3
                      ON t3.date = x1.date
                         AND t3.loc = x2.loc;