【问题标题】:How can I count total number of sales per month using a condition in SQL?如何使用 SQL 中的条件计算每月的总销售额?
【发布时间】:2021-02-24 07:42:33
【问题描述】:

我搜索了论坛,但找不到像我这样的问题。我有一个名为 Journal Table 的表,其中包含以下数据:

如果数量>0,则交易被视为销售,否则为贷款交易。现在我的问题是如何将交易总数计算为每月销售额。

喜欢:

Month | TotalSales
1       5
2       3
3       7

我尝试了以下但得到了错误的输出:

Select DISTINCT Month(date) AS 'Month', 
(Select COUNT(TransactionID) from journalTable where Quantity>0) 
AS 'Total Sales' from journalTable;

这是输出的图片:

输出错误,因为它计算了所有月份的总数并显示了每个月。它应该计算每个月的总数并显示出来。

【问题讨论】:

  • 你如何得到Month = 15 Sales ?甚至没有一月份的交易
  • 是的,我没有 1 月份的数据,这只是我想要的输出示例。
  • 预计会显示与提供的样本数据相对应的预期结果
  • 谢谢,下次我会小心的:)

标签: sql sql-server tsql


【解决方案1】:

只需group by 和有条件的sum

select Month(date) as 'Month'
    , sum(case when Quantity > 0 then 1 else 0 end) as 'Total Sales'
    -- You can even add a count of loans at the same time.
    , sum(case when Quantity <= 0 then 1 else 0 end) as 'Total Loans'
from journalTable
group by Month(date);

【讨论】:

    【解决方案2】:

    类似的东西

     SELECT MONTH(DATE) AS MONTH, COUNT(QUANTITY)CNTT
     FROM TRANSACTIONS
     WHERE QUANTITY > 0
     GROUP BY MONTH(DATE)
    

    【讨论】:

    • 这样做的问题是错过了销售额为 0 的月份。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 2022-11-22
    相关资源
    最近更新 更多