Одна таблица базы данных состоит из столбца значений с идентификатором, который относится к вторичной таблице, которая содержит имя этих значений.Например, у меня есть один получатель с 24 строками, каждая строка имеет отношение к отдельному типу значения по имени.
Я пытаюсь улучшить свои подзапросы, так как я очень плохо знаком с большими сложными запросами, я не могупонять, как разделить эти значения на новые столбцы для этого ОДНОГО получателя.
Я пробовал PIVOT Table, я не совсем уверен, что это лучший способ двигаться вперед, поэтому, если у кого-то есть другие варианты, пожалуйста, дайте мне знать, чтобы я мог исследовать!
текущий запрос производит следующее:
SELECT e.recipientid,
svr.segvaluebagid,
svr.segvalueid,
sv.segid,
s.NAME,
sv.value
FROM SCHEMA.DB.TABLE e
LEFT JOIN SCHEMA.DB.TABLE svr
ON svr.segvaluebagid = e.segvaluebagid
LEFT JOIN SCHEMA.DB.TABLE sv
ON svr.segvalueid = sv.segvalueid
LEFT JOIN SCHEMA.DB.TABLE s
ON s.segid = sv.segid
WHERE e.marketingcampaignid = 01
AND e.recipientid = 01
AND s.NAME NOT LIKE '%useragent%'
GROUP BY e.recipientid,
e.eventid,
e.eventtypeid,
e.marketingcampaignid,
e.jobid,
e.segvaluebagid,
e.triggerdate,
svr.segvaluebagid,
svr.segvalueid,
sv.segid,
s.NAME,
sv.value
ID,ID2,ID3,ID4,COL NAME ,COL VALUE
ID,ID2,ID3,ID4,DIFFERENT COL NAME ,DIFFERENT COL VALUE
ID,ID2,ID3,ID4,DIFFERENT COL NAME ,DIFFERENT COL VALUE
ID,ID2,ID3,ID4,DIFFERENT COL NAME ,DIFFERENT COL VALUE
ID,ID2,ID3,ID4,DIFFERENT COL NAME ,DIFFERENT COL VALUE
ID,ID2,ID3,ID4,DIFFERENT COL NAME ,DIFFERENT COL VALUE
ID,ID2,ID3,ID4,DIFFERENT COL NAME ,DIFFERENT COL VALUE
Я включил следующий код PIVOT в свой запрос:
PIVOT(max([value])
FOR [name] IN([COL],
[COL1],
[COL2],
[COL3],
[COL4],
[COL5],
[COL6],
[COL7],
[COL8],
[COL9],
[COL10]))
И теперь запрос создает новый столбец для каждого значения, также сохраняя каждыйодна строка, подобная следующей:
VALUE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,VALUE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,VALUE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,VALUE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,VALUE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,VALUE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Мой идеальный вывод следующий:
VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE
Я действительно борюсь с этим, если бы кто-нибудь мог дать немного понимания, я быценю это много.