清单查询状态销售,即使他们这个月没有销售

问题描述 投票:0回答:1

我请求你从一些专家协助编写SQL Server查询。我必须每个月产生两个表汇总销售在每个国家的数量和金额的报告。为了简便的缘故,假设销售表只有4列:订单号,日期,状态,以及总。表一个列出每个州有史以来的所有销售和总运行。第二张图仅列出了一个月的每个州销售。

enter image description here enter image description here

我可以写第一个查询很容易的。我的问题是第二个查询。第二个表必须包含任何状态下我们以前曾在其销量即使没有销售这个月(当时这将有0号订单和0总销售额)。这两个表还并排坐在在报告中这将使其明显,如果其中一人失踪了月销量表个态。该报告将被自动化,这意味着我不能只在遗漏值只需添加。在实际生产环境中,我们目前有来自29个国家的订单。下个月,我们可能会在新的(或几个新的)状态(S),这意味着我可以在一个像声明中没有硬编码的州名收到订单。同样,我不能显示在从未有过在它销售(管理规则)的第一个表的状态。有人可以帮助我把这个查询起来呢?我似乎无法环绕的语法我的头。我感谢所有帮助你们可以提供。

sql sql-server select
1个回答
2
投票

为什么你会写两个查询?只要写一个有五列:

select state,
       count(*) as orders_total,
       sum(total) as sales_total,
       sum(case when date >= '2019-01-01' and date < '2019-02-01'
                then 1 else 0
           end) as orders_201901,
       sum(case when date >= '2019-01-01' and date < '2019-02-01'
                then total else 0
           end) as sales_201901
from t
group by state
order by state;
© www.soinside.com 2019 - 2024. All rights reserved.