2016-11-08 1 views
0

Я использую следующий запрос, чтобы вытащить список учетных записей и дополнительные коды, которые идут с ними. Для каждой учетной записи есть 95 кодов, а не только 2, которые я показываю в приведенных ниже результатах.Создать строки в столбцы в (RAPID) SQL без PIVOT

SELECT DISTINCT Ref1.ACCOUNT_ID as Acct_Numb, 
Current_Date as DATA_DATE, 
Cat.OPTIONAL_CTGRY_CD As Code, 
Cat.OPTIONAL_CTGRY_CD || ' - ' || Cat.OPTIONAL_CTGRY_NM AS Code_Combo, 
Class.OPTIONAL_CLASS_CD as Code_Answer, 
Class.OPTIONAL_CLASS_NM as Code_Answer_Desc 

FROM xxxxx.zzzzzz_OPT_REF Ref1 

LEFT JOIN xxxxx.zzzzzz_OPT_CATEGORY Cat 
ON xxxxx.zzzzzz_OPT_REF.OPTIONAL_CTGRY_CD = xxxxx.zzzzzz_OPT_CATEGORY.OPTIONAL_CTGRY_CD 

LEFT JOIN xxxxx.zzzzzz_OPT_CLASS Class 
ON xxxxx.zzzzzz_OPT_REF.OPTIONAL_CLASS_CD = xxxxx.zzzzzz_OPT_CLASS.OPTIONAL_CLASS_CD 
AND xxxxx.zzzzzz_OPT_CATEGORY.OPTIONAL_CTGRY_CD = xxxxx.zzzzzz_OPT_CLASS.OPTIONAL_CTGRY_CD 

LEFT JOIN xxxxx.HRTVACT_PCS Acct 
ON xxxxx.ACCOUNT_ID = Acct.ACCOUNTID 

WHERE xxxxx.ACCOUNTSTATUS = 'OPEN' AND xxxxx.ACCOUNTID = '123456' OR xxxxx.ACCOUNTID = '654321' 

ORDER BY ACCT_NUMB ASC, CODE ASC; 

Вот результаты

DATA_DATE ACCT_NUMB CODE CODE_COMBO  CODE_ANSWER CODE_ANSWER_DESC 
11/8/2016  123456  1 1 - Reporting  0  NOT APPLICABLE 
11/8/2016  123456  2 2 - System   4  SYSTEM 2 
11/8/2016  654321  1 1 - Reporting  3  APPLIED 
11/8/2016  654321  2 2 - System   3  N/A 

Мне нужно создать результаты в виде сводной таблицы, которая выглядит, как в таблице ниже.

     (CODE) (CODE_COMBO) (CODE) (CODE_COMBO) 
DATA_DATE ACCT_NUMB  1 1 - Reporting  2  2 - System 
11/8/2016 123456  0 NOT APPLICABLE 4   SYSTEM 2 (CODE_ANSWER)/(CODE_ANSWER_DESC) 
11/8/2016 654321  3 APPLIED   3   N/A   (CODE_ANSWER)/(CODE_ANSWER_DESC) 

Я не пробовал это раньше, и я озадачен

ответ

0

Исполнив это в прошлом с помощью таблицы псевдонимов, так что вы можете присоединиться к столу, к самому себе. Я сделал это с 4 или 5 столбцами, а не 95, поэтому может быть лучший способ, о котором я не знаю.