【发布时间】:2020-11-11 17:32:38
【问题描述】:
我试图在 SQL 中查看每个月的利润。但是,我有多个“七月”,似乎无法将它们分成不同的年份。这是我正在尝试的查询。
select
concat(datename(year, o.orderdate), ' ', datename(month, o.OrderDate)) [Month],
sum((t.StandardPrice - t.TotMaterialCost) * ol.OrderedQuantity) [Total Profit]
from
Temp_V t, OrderLine_T ol, Order_T o
where
t.ProductID = ol.ProductID
and ol.OrderID = o.OrderID
group by
o.OrderDate
我得到了正确的输出,但例如,它在两个不同的行中显示 2017 年 7 月,而不是 2017 年 7 月和 2018 年 7 月。(这就是我想说的)。我认为这是Concat() 的错误。
【问题讨论】:
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(25 多年前),不鼓励使用它
标签: sql sql-server datetime concatenation