sql - 如何在sqlserver2014中使用case将两列数据放入一列?
问题描述
如果 2018 年的销售额 = 0,我需要将 2019 年的销售额放入一个名为新的单独列中。这是我的代码供您参考
SELECT
ISNULL(sp.Telephone,'No Sales Employee'),
od.CardCode,
od.CardName,
Sum(case when c.U_ItemStatus = '2' then od.DocTotal else 0 end) as Sold2018,
Sum(case when c.U_ItemStatus = '1' then od.DocTotal else 0 end) as Sold2019,
(select od.DocTotal where c.U_ItemStatus = '2' ) as new
FROM
ORDR od
Left Join OSLP sp
On od.SlpCode=sp.SlpCode
left join RDR1 a on a.DocEntry = od.DocEntry
left join OITM b on b.ItemCode = a.ItemCode
left Join OITB c on c.ItmsGrpCod = b.ItmsGrpCod
Group By
sp.Telephone,
od.CardCode,
od.CardName,
c.U_ItemStatus,
od.DocTotal
解决方案
使用CASE
语句并注意您需要Sold2018
在条件中使用整个表达式而不是alias
CASE WHEN Sum(case when c.U_ItemStatus = '2' then od.DocTotal else 0 end) = 0
THEN Sum(case when c.U_ItemStatus = '1' then od.DocTotal else 0 end)
END AS New
推荐阅读
- python - 如何使用 Selenium 和 python 在 Tor 浏览器中单击按钮
- java - wrap_content 或 match_parent 没有给出正确的结果
- javascript - 增量运算符在这里做什么以及它如何改变比例?
- java - 搜索 CRUD 教程
- c++ - 使用数据初始化向量不起作用 - push_back() 确实有效
- html - 在 Rmarkdown 中为文本着色失败:color-text.lua 在 RevealJS 中不起作用
- django - 我是否需要将 __init__.py 放在通向我的班级的目录树中的每个目录中?
- javascript - 在 VS Code 中调试 Node JS 应用程序时没有命中断点
- javascript - 如何在我的 html/css 网站上垂直添加“填充”点导航样式
- javascript - 如何让 cy.visit() 等待 ajax 请求完成?