2行または3行に行を分割したいと考えています。これは可能ですか?
私はこのような引用符を示す表があります。SQL:1行を2行または3行に分割する
表NAME:引用
ID | NAME | BusCost | TaxiCost | TrainCost
-------------------------------------------
01 | Steve | NULL | 25 | NULL
02 | Barry | 15 | 30 | NULL
03 | Bob | 150 | 400 | 300
しかし、私はこのような引用符を表示する:
ID | Name | Cost
------------------
01 | Steve | 25
02 | Barry | 15
02 | Barry | 30
03 | Bob | 30
03 | Bob | 100
03 | Bob | 70
を、私は私を推測していますこれを行うには何らかの種類のUNION
を使用する必要がありますが、私は迷っています。私はSQLには比較的新しいので、誰かが私を正しい方向に向けることができればと考えていました。
私は(どちらか非常に近接していない)来て、最も近いがこれを行うことである。
SELECT COST
FROM
(
SELECT BusCost AS COST FROM Quotes
UNION
SELECT TaxiCost AS COST FROM Quotes
UNION
SELECT TrainCost AS COST FROM Quotes
) A
GROUP BY COST
SELECT id, name FROM Quotes
UNION ALL
SELECT COST
FROM
(
SELECT BusCost AS COST FROM Quotes
UNION
SELECT TaxiCost AS COST FROM Quotes
UNION
SELECT TrainCost AS COST FROM Quotes
) A
GROUP BY COST
任意の助けいただければ幸いです。
「UNION」は重複を削除します。したがって、Bobがバスライドで30を、trainrideでSteve 30を使用すると、「30」のエントリが1つだけになります。重複しないようにするには、 'UNION ALL'を使います。 'PIVOT'を見たいかもしれません – HoneyBadger
あなたの希望する結果が入力データと一致していないようです。特別な数学がありますか、それとも単にタイプミスですか? –