SQL 将行转为列
SQL pivot rows to columns
我有一个查询 returns 两个类型的机构 "Vente" 和 "Recouv"。我希望我的请求显示一行 "Commission".
列的总和
这是一张展示我所拥有的和我想要的照片:
select codeAgence,CASE WHEN (TypeOperation =0) THEN 'Vente' ELSE 'Recouvrement' END as 'Type',
count(*) 'Nb',SUM(PxVenteHT ) 'C.A',SUM(acompte) 'Montant',SUM(MontantCommission ) 'Commission' from Commission_Archive
group by CodeAgence,TypeOperation
order by CodeAgence
我认为这可能会满足您的要求,但由于您的问题缺少适当的示例源数据,我还没有对其进行测试。
SELECT
codeAgence,
COUNT(CASE WHEN (TypeOperation = 0) THEN 'Vente' ELSE NULL END) 'Nb Vente',
SUM(CASE WHEN (TypeOperation = 0) THEN PxVenteHT ELSE 0 END) 'C.A',
COUNT(CASE WHEN (TypeOperation <> 0) THEN 'Recouve' ELSE NULL END) 'Nb Recouve',
SUM(CASE WHEN (TypeOperation <> 0) THEN acompte ELSE 0 END) 'Montant Recouve',
SUM(MontantCommission) 'Commission'
FROM Commission_Archive
GROUP BY CodeAgence
ORDER BY CodeAgence
关键是将条件聚合技术应用于所有应在 Nb/Recouve 上拆分的聚合列并更改分组。
我有一个查询 returns 两个类型的机构 "Vente" 和 "Recouv"。我希望我的请求显示一行 "Commission".
列的总和这是一张展示我所拥有的和我想要的照片:
select codeAgence,CASE WHEN (TypeOperation =0) THEN 'Vente' ELSE 'Recouvrement' END as 'Type',
count(*) 'Nb',SUM(PxVenteHT ) 'C.A',SUM(acompte) 'Montant',SUM(MontantCommission ) 'Commission' from Commission_Archive
group by CodeAgence,TypeOperation
order by CodeAgence
我认为这可能会满足您的要求,但由于您的问题缺少适当的示例源数据,我还没有对其进行测试。
SELECT
codeAgence,
COUNT(CASE WHEN (TypeOperation = 0) THEN 'Vente' ELSE NULL END) 'Nb Vente',
SUM(CASE WHEN (TypeOperation = 0) THEN PxVenteHT ELSE 0 END) 'C.A',
COUNT(CASE WHEN (TypeOperation <> 0) THEN 'Recouve' ELSE NULL END) 'Nb Recouve',
SUM(CASE WHEN (TypeOperation <> 0) THEN acompte ELSE 0 END) 'Montant Recouve',
SUM(MontantCommission) 'Commission'
FROM Commission_Archive
GROUP BY CodeAgence
ORDER BY CodeAgence
关键是将条件聚合技术应用于所有应在 Nb/Recouve 上拆分的聚合列并更改分组。