1
私は、ショーのエピソードのために1つの行を格納するテーブルを持っています。すべてのエピソードが格納されるわけではないことに注意してください。SQL:プレースホルダ行のピボット
showID | viewerID | episodeNumber | episodeDescription
____________________________________________________________________
15 | ID-123 | 1 | Scary
____________________________________________________________________
15 | ID-123 | 3 | Funny
エピソード番号と説明の列を作成するためのピボットクエリを作成しました。エピソードの数は既知の量です。
showID | viewerID | episode1 | episode2 | episode3
__________________________________________________________________________
15 | ID-123 | Scary | funny |
私の問題は、最初のテーブルのエピソード番号2の行の欠如によって、この例のように、エピソードのための記録がない場合、クエリは、「プレースホルダ」を作成しないことで、代わりにepisode3のデータをepisode2の列に入れます。私は必要なものがあれば分かりませんが、エピソード番号のデータがないときは、エピソード番号が正しい記述に関連付けられていることを確認する必要があります。表2の各エピソードの列を表示します(上の表2では、episode2のフィールドは空白にしてください)。
私のクエリは次のとおりです。
SELECT viewerID, showID,
episodeDescription1, episodeDescription2, episodeDescription3
FROM
(
SELECT viewerID, showID, col+cast(seq as varchar(10)) as col, value
from
(
SELECT viewerID, showID, episodeNumber, episodeDescription,
row_number() over(partition by showID
order by episodeNumber) seq
FROM tbl_showEpisodes
) d
CROSS APPLY
(
SELECT 'episodeNumber', cast(episodeNumber as varchar(20))
UNION ALL
SELECT 'episodeDescription', episodeDescription
) c (col, value)
) src
pivot
(
MAX(value)
for col in (
episodeNumber1, episodeDescription1, episodeNumber2,
episodeDescription2, episodeNumber3, episodeDescription3)
) piv;
私はこれが明確で、かつ任意の助けを事前に感謝願っています! SQL Serverを使用して、2012年
BAM、それはトリックでした。あなたは私の一日を作った。どうもありがとうございます!!! – Brig