我正在创建一个日期/唯一ID表,以简化我们需要作为团队运行的其他一些查询。基本上我有一组值(“ A”,“ B”,“ C”等) 并需要为每个值添加一个日期,以便结果类似于:
我有一张桌子,上面有我的所有日期和所有ID,我可以将它们加入并结束如下结果:
Date ID
1/1/2018 A
1/1/2018 B
1/1/2018 C
1/1/2018 ..etc
1/2/2018 A
1/2/2018 B
1/2/2018 C
1/2/2018 ..etc
我知道我可以在excel中创建表或将其插入,但是随着添加更多值,我希望能够重新运行脚本以生成值。 这可能吗?
编辑-交叉连接效果很好
select date, id from cal (cross join distinct id from source) t1
答案 0 :(得分:0)
您可以使用以下查询来获得预期的结果:
-- query to get the result in case the columns in the same table.
SELECT t_dates.Date, t_ids.ID FROM (
SELECT DISTINCT Date FROM table_name
) t_dates, (
SELECT DISTINCT ID FROM table_name
) t_ids
ORDER BY t_dates.Date ASC, t_ids.ID ASC
-- query to get the result in case the columns are in different tables.
-- this is also possible with the same table.
SELECT DISTINCT t_dates.Date, t_ids.ID
FROM table_name1 t_dates, table_name2 t_ids
ORDER BY t_dates.Date ASC, t_ids.ID ASC
您也可以create a view:
-- creating the view
CREATE VIEW table_id AS
SELECT t_dates.Date, t_ids.ID FROM (
SELECT DISTINCT Date FROM table_name
) t_dates, (
SELECT DISTINCT ID FROM table_name
) t_ids
-- using the view
SELECT * FROM table_id