변경 요청 데이터베이스에 대해 실행되는 다음 SQL 코드가 있습니다. 각 레코드에는 영향을받은 미국 지역을 나타내는 여러 열이 있습니다. 변경이 region에 영향을주는 경우, 값은 1이되고 그렇지 않으면 NULL이됩니다. 그래서 결정하기 위해 각 열에있는 값을 추가하고 하나 개 이상의 영역이 영향을받는 경우, 대답은 수 1보다 큰T-SQL : CASE 및 COALESCE를 사용하여 여러 열의 데이터를 하나의 출력 열로 표시
내 유착를 변경하는 방법에 도움이 필요 및/또는 것
CASE 문은 "Affected_Area"출력에 값이 1 인 영향을받는 모든 영역을 나열합니다.
영향을받는 지역 지난 7 일이
SELECT ID,
(ISNULL(southeast,0) + ISNULL(allregions,0) + ISNULL(midamerica,0) + ISNULL(northcentral,0) + ISNULL(northeast,0) + ISNULL(pacificnorthwest,0) + ISNULL(pacificsouthwest,0)),
Affected_Area = COALESCE(
CASE WHEN [allregions]=1 THEN 'All Regions' ELSE NULL END,
CASE WHEN [midamerica]=1 THEN 'Mid-America' ELSE NULL END,
CASE WHEN [northcentral]=1 THEN 'North Central' ELSE NULL END,
CASE WHEN [northeast]=1 THEN 'Northeast' ELSE NULL END,
CASE WHEN [pacificnorthwest]=1 THEN 'Pacific Northwest' ELSE NULL END,
CASE WHEN [pacificsouthwest]=1 THEN 'Pacific Southwest' ELSE NULL END,
CASE WHEN [southeast]=1 THEN 'Southeast' ELSE NULL END
),
FROM [DB_Reporting].[dbo].change c with (nolock)
WHERE convert(varchar(10),([needed_by_date]),110) BETWEEN (DATEADD(DD,-7,CONVERT(VARCHAR(10),GetDATE(),110))) AND (DATEADD(DD,-1,CONVERT(VARCHAR(10),GetDATE(),110)))
어떤 도움에 감사드립니다! 이 같은
행크 스톨 링스
원하는 출력은 무엇입니까? – RedFilter
지역별로 한 행 또는 영향을받는 모든 지역이 한 행에 쉼표로 구분 된 한 행을 원하십니까? – van