SQL SERVER 2008 R2 を使用しています。複数の値を取得し、同時に行ごとに単一の列に表示したいのですが、値が存在しない場合は、いくつかの値が表示され、単一の列に「12個の値」が表示される可能性があります。
たとえば、以下のスクリーン ショットでは、コメントを除いて同じデータのレコードが表示されます。単一のレコードとして表示したいのですが、コメントにはASN 適時性、ASN 精度、問題レポートの両方の値を表示する必要があります。3 つの値は、同じ出荷サイト"0096a"を使用して行ごとに表示されます。
私のサンプルクエリ、
SELECT
D30.SPGD30_SHIP_SITE_C AS SHIPSITE,
D30.SPGD30_RATING_MONTH_Y AS RATINGMONTH,
D30.SPGD30_PRIOR_SCORE_R AS PRIOR,
D30.SPGD30_REVISED_SCORE_R AS REVISED,
CASE WHEN (CHARINDEX('-',D30.SPGD30_TRACKED_ADJUSTMENT_X) > 0 ) THEN CONVERT( VARCHAR(8), CAST(D30.SPGD30_TRACKED_ADJUSTMENT_X AS DATETIME) , 1) ELSE D30.SPGD30_TRACKED_ADJUSTMENT_X END ADJUSTMENTS,
J02.SPGJ02_MSG_CODE_X AS COMMENTS,
D30.SPGD30_LAST_TOUCH_Y AS LASTUPDATED,
D30.SPGD30_LAST_TOUCH_C AS LASTUPDATEDCDSID
FROM
CSPGD30_TRACKING D30,
CSPGD31_TRACKING_RATING_ELEMNT D31,
CSPGA04_RATING_ELEMENT_MSTR A04 ,
CSPGJ02_MSG_OBJ J02
WHERE
D30.SPGA02_BUSINESS_TYPE_C = D31.SPGA02_BUSINESS_TYPE_C
AND
D30.SPGA03_REGION_C = D31.SPGA03_REGION_C
AND
D30.SPGD30_SHIP_SITE_C = D31.SPGD30_SHIP_SITE_C
AND
D30.SPGD30_RATING_MONTH_Y = D31.SPGD30_RATING_MONTH_Y
AND
D30.SPGD30_TRACKED_ADJUSTMENT_X = D31.SPGD30_TRACKED_ADJUSTMENT_X
AND
D30.SPGD30_LAST_TOUCH_Y = D31.SPGD30_LAST_TOUCH_Y
AND
D31.SPGA04_RATING_ELEMENT_D = A04.SPGA04_RATING_ELEMENT_D
AND
A04.SPGJ02_MSG_K = J02.SPGJ02_MSG_K
AND
D30.SPGA02_BUSINESS_TYPE_C = 'serv'
AND
D30.SPGA03_REGION_C = 'ap'
AND
D30.SPGD30_SHIP_SITE_C = '0134a'
ORDER BY
D30.SPGD30_SHIP_SITE_C ASC ,
D30.SPGD30_RATING_MONTH_Y DESC ,
D30.SPGD30_LAST_TOUCH_Y DESC