SQL - 创建包含所有变量的完整矩阵,即使为空
SQL - Create complete matrix with all variables even if null
请提供一些assistance/guidance来解决以下问题:
我有 1 个主 table,它表示每个不同产品类型的销售人员的销售量。
如果销售人员在特定日期没有销售特定产品,则没有记录。
目的是为在特定日期没有销售产品的销售人员创建空值记录。查询必须是动态的,因为有更多的销售人员在很多天都有销售。
提前致谢
只需使用 cross join
为所有销售人员、日期和产品生成记录,然后引入现有数据:
select p.salesperson, d.salesdate, st.salestype,
coalesce(t.sales_volume, 0)
from (select distinct salesperson from t) p cross join
(select distinct salesdate from t) d cross join
(select distinct salestype from t) st left join
t
on t.salesperson = p.salesperson and
t.salesdate = d.salesdate and
t.salestype = st.salestype;
注意:您可能有其他包含销售人员、日期和类型列表的表,这些表可以用来代替 select distinct
查询。
请提供一些assistance/guidance来解决以下问题:
我有 1 个主 table,它表示每个不同产品类型的销售人员的销售量。 如果销售人员在特定日期没有销售特定产品,则没有记录。 目的是为在特定日期没有销售产品的销售人员创建空值记录。查询必须是动态的,因为有更多的销售人员在很多天都有销售。
提前致谢
只需使用 cross join
为所有销售人员、日期和产品生成记录,然后引入现有数据:
select p.salesperson, d.salesdate, st.salestype,
coalesce(t.sales_volume, 0)
from (select distinct salesperson from t) p cross join
(select distinct salesdate from t) d cross join
(select distinct salestype from t) st left join
t
on t.salesperson = p.salesperson and
t.salesdate = d.salesdate and
t.salestype = st.salestype;
注意:您可能有其他包含销售人员、日期和类型列表的表,这些表可以用来代替 select distinct
查询。