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 查询。