sql - 使用数据透视显示查询结果
问题描述
我有以下查询,我使用 PIVOT 显示结果,以便结果显示在一行中。
With T1 As
(EXT Code
),
T2 AS (
SELECT p.SId, p.TransType, Amount =SUM(p.Amount)
FROM T1 p
GROUP BY p.SId, p.TransType
)
SELECT m.SNo, m.Name, t.TransType,
CASE WHEN t.TransType ='PAYCM' THEN t.Amount ELSE 0 END AS 'GROSS CM',
CASE WHEN t.TransType ='PAYYTD' THEN t.Amount ELSE 0 END AS 'GROSS YTD',
CASE WHEN t.TransType ='TAXCM' THEN t.Amount ELSE 0 END AS 'Tax CM',
CASE WHEN t.TransType ='TAXYTD' THEN t.Amount ELSE 0 END AS 'Tax YTD'
FROM Master m INNER JOIN T2 t ON t.PId = m.Id
解决方案
如果你想要一行,那么使用聚合并删除非聚合列:
SELECT SUM(CASE WHEN t.TransType = 'PAYCM' THEN t.Amount ELSE 0 END) AS GROSS _CM,
SUM(CASE WHEN t.TransType = 'PAYYTD' THEN t.Amount ELSE 0 END) AS GROSS_YTD,
SUM(CASE WHEN t.TransType = 'TAXCM' THEN t.Amount ELSE 0 END) AS Tax_CM,
SUM(CASE WHEN t.TransType = 'TAXYTD' THEN t.Amount ELSE 0 END) AS Tax_YTD
FROM Master m INNER JOIN
T2 t
ON t.PId = m.Id;
推荐阅读
- dart - 如何在颤振(飞镖)上放置多个文本参数?
- go - 当消息从未被评估时,应该使用哪种通道类型?
- c# - 使用实体框架保存模型 c# 时遇到问题
- ruby-on-rails - 允许数组中的参数(具有同一模型的多个实例的表单)
- asp.net - 可以从 asp.net core 2.2 目标的 SignInManager 在 4.6.1 上运行
- c# - 如何在 C# 中使用 Microsoft.Azure.Management.Automation AutomationClient 启动 Azure Runbook/webhook?
- c++ - 错误:未在此范围内声明“sumProduct”
- ios - yarn run ios - 错误:找不到模块 - React Native
- powershell-4.0 - 在powershell中创建一个环回,直到满足变量
- dc.js - 如何在我的交叉过滤器组中使用自定义减少功能?