如何在SQL中获得一行三列(使用每个信使的成本总和)?
How to get one line and Three colums in SQL (using the sum of costs for each menssenger)?
table screenshot
以下查询让我得到 3 行,但这不是我想要得到的,我想要得到 1 行和 3 列,你能帮我吗?
Select NoMess,
case
when (NoMess = "1") Then (SELECT SUM (Port) from commande where NoMess = "1")
when (NoMess = "2") Then (SELECT SUM (Port) from commande where NoMess = "2")
when (NoMess = "3") Then (SELECT SUM (Port) from commande where NoMess = "3")
End as Port
From Commande
Group by NoMess
您可以使用条件聚合来完成:
SELECT
SUM(CASE WHEN NoMess = '1' THEN Port ELSE 0 END) AS column1,
SUM(CASE WHEN NoMess = '2' THEN Port ELSE 0 END) AS column2,
SUM(CASE WHEN NoMess = '3' THEN Port ELSE 0 END) AS column3
FROM Commande
table screenshot
以下查询让我得到 3 行,但这不是我想要得到的,我想要得到 1 行和 3 列,你能帮我吗?
Select NoMess,
case
when (NoMess = "1") Then (SELECT SUM (Port) from commande where NoMess = "1")
when (NoMess = "2") Then (SELECT SUM (Port) from commande where NoMess = "2")
when (NoMess = "3") Then (SELECT SUM (Port) from commande where NoMess = "3")
End as Port
From Commande
Group by NoMess
您可以使用条件聚合来完成:
SELECT
SUM(CASE WHEN NoMess = '1' THEN Port ELSE 0 END) AS column1,
SUM(CASE WHEN NoMess = '2' THEN Port ELSE 0 END) AS column2,
SUM(CASE WHEN NoMess = '3' THEN Port ELSE 0 END) AS column3
FROM Commande