Как отобразить «Много» одного-ко-многим в одной строке - PullRequest
0 голосов
/ 30 октября 2018

Мне было предоставлено 2 файла в виде двух таблиц: «VoterData» и «VoterHistory». Как лучше всего выполнить ожидаемое отображение?

ОЖИДАЕМЫЙ ДИСПЛЕЙ

ID      | First Name | Last Name   | Election1 | Election2 | Election3
--------+------------+-------------+-----------+-----------+----------
2155077 | Camille    | Bocchicchio | 2016June7 | 2016Nov8  | 2018June5
2155079 | Manabu     | Lonny       | 2016June7 | 2016Nov8  | 
2155083 | Scott      | Bosomworth  | 2016June7 |           | 2018June5



ONE- 'VoterData'

lVoterUniqueID | szNameFirst | szNameLast
---------------+-------------+------------
2155077        | Camille     | Bocchicchio  
2155079        | Manabu      | Lonny  
2155083        | Scott       | Bosomworth  

MANY- 'VoterHistory'

lVoterUniqueID | sElectionAbbr 
---------------+---------------
2155077        | 2016June7     
2155077        | 2016Nov8      
2155077        | 2018June5  
2155079        | 2016June7      
2155079        | 2016Nov8      
2155083        | 2016June7       
2155083        | 2018June5    

1 Ответ

0 голосов
/ 30 октября 2018

Использование кросс-таблицы

TRANSFORM First(H.sElectionAbbr) AS FirstOfsElectionAbbr
SELECT H.lVoterUniqueID AS ID, D.szNameFirst AS [First Name], D.szNameLast AS [Last Name]
FROM VoterData AS D INNER JOIN VoterHistory AS H ON D.lVoterUniqueID = H.lVoterUniqueID
GROUP BY H.lVoterUniqueID, D.szNameFirst, D.szNameLast
PIVOT H.sElectionAbbr;
...