Sql server 将两个查询合并在一行中显示
我正在使用下面的代码查找信用卡和现金的销售额,当前输出如下所示,但我希望在单行中获得信用卡和现金销售额 电流输出: 预期产出:Sql server 将两个查询合并在一行中显示,sql-server,Sql Server,我正在使用下面的代码查找信用卡和现金的销售额,当前输出如下所示,但我希望在单行中获得信用卡和现金销售额 电流输出: 预期产出: SELECT CONVERT(VARCHAR(10), CreateDate, 103) DT,SUM(AMOUNT),NULL FROM JnlDetails WHERE JnlDetails.CreateDate > '2021-05-01' AND ACCOUNTID = '000153200101' GROUP BY CONVERT(VARCHAR(
SELECT CONVERT(VARCHAR(10), CreateDate, 103) DT,SUM(AMOUNT),NULL FROM JnlDetails WHERE JnlDetails.CreateDate > '2021-05-01'
AND ACCOUNTID = '000153200101'
GROUP BY CONVERT(VARCHAR(10), CreateDate, 103)
UNION ALL
SELECT CONVERT(VARCHAR(10), CreateDate, 103) DT,NULL,SUM(AMOUNT) FROM JnlDetails WHERE JnlDetails.CreateDate > '2021-05-01'
AND ACCOUNTID = '000153200201'
GROUP BY CONVERT(VARCHAR(10), CreateDate, 103)
ORDER BY DT
在没有工会的情况下,是否还有其他选择可以实现这一目标?这两个信息(卡和销售额)都在同一个表中,基于accountid,我们可以拆分。使用
大小写表达式
可以有条件地对值求和
select Convert(varchar(10), CreateDate, 103) DT,
Sum (case when ACCOUNTID = '000153200101' then AMOUNT end) as Cash,
Sum (case when ACCOUNTID = '000153200201' then AMOUNT end) as Card
from JnlDetails
where JnlDetails.CreateDate > '2021-05-01'
and ACCOUNTID in ('000153200101','000153200201')
group by Convert(varchar(10), CreateDate, 103)
使用
大小写表达式
可以有条件地求和
值
select Convert(varchar(10), CreateDate, 103) DT,
Sum (case when ACCOUNTID = '000153200101' then AMOUNT end) as Cash,
Sum (case when ACCOUNTID = '000153200201' then AMOUNT end) as Card
from JnlDetails
where JnlDetails.CreateDate > '2021-05-01'
and ACCOUNTID in ('000153200101','000153200201')
group by Convert(varchar(10), CreateDate, 103)
您可以使用
大小写表达式
感谢您的回复。如果可能的话,你能详细解释一下吗?问题并提供一个,即创建
表或其他相关对象的语句(粘贴文本、不使用图像、不链接到外部站点),插入样本数据的语句(dito)以及以表格文本格式显示该样本数据的所需结果,要从datetime
中删除时间,只需将其转换为date
@Always学习AccountId
值的不同之处-请注意,它们对于每个联合查询都是不同的。您可以使用大小写表达式
,谢谢您的回复。如果可能的话,你能详细解释一下吗?问题并提供一个,即创建
表或其他相关对象的语句(粘贴文本、不使用图像、不链接到外部站点),插入样本数据的语句(dito)以及以表格文本格式显示该样本数据的所需结果,要从datetime
中删除时间,只需将其转换为date
@始终学习AccountId
值是区别所在-请注意,对于每个联合查询,它们是不同的。当我尝试上述代码时,它会显示以下错误列“JnlDetails.CreateDate”在选择列表中无效,因为它不是包含在聚合函数或GROUP BY子句中,该部分在您的查询中保持不变-您确定已包含GROUP BY吗?对不起,这是我的错误。。它工作得很好。非常感谢您的帮助。我是这个stackflow的新手,我想把这个答案和其他论坛一样标记为最佳答案。是否有任何选项?当我尝试上述代码时,确实可以这样做,因为它在选择列表中显示以下错误列“JnlDetails.CreateDate”无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中
该部分在您的查询中保持不变-您确定已包含GROUP BY
I吗对不起,这是我的错。。它工作得很好。非常感谢您的帮助。我是这个stackflow的新手,我想把这个答案和其他论坛一样标记为最佳答案。有什么选择吗?当然可以