위치를 나타 내기 위해 약 25 개의 열이있는 표가 있습니다.이 결과를 더 깨끗한 레이아웃으로 바꾸는 방법이 있다면 궁금합니다. 어떻게 내가 내 SQL에있는 것은의 라인을 따라입니다 : 이것은 나에게Transpose SQL Results
Face | Head | Eye | Finger - Left | .... |
---------------------------------------------
0 | 1 | 2 | 0 | ... |
유사한 결과 데이터 집합을 제공
SELECT sum(isnull(p.[injuryFace],0)) AS [Face]
,sum(isnull(p.[InjuryHead],0)) AS [Head]
,sum(isnull(p.[InjuryEye],0)) AS [Eye]
,sum(isnull(p.[InjuryLeftFinger],0)) AS [Finger - Left]
,....
FROM tbl_OHS_IncidentsPeople P
내가 결국하고 싶은 어떤 것이
Area | Count |
------------------------
Face | 0 |
Head | 2 |
Eye | 3 |
Finger - Left | 0 |
입니다
아니, 내가 필요로하는 것 같아 보이는 Simple way to transpose columns and rows in Sql?을 보았다. 그러나 나는 전체 테이블을 조바꿈하고 싶지 않기 때문에 내 머리에서 그것을 이해할 수 없다.
어떤 도움을
건배 스티븐
테이블은 부상에 있었다 그래서 더 정규화 인 경우 자신의 자식 테이블을 가지고 있고 기본적으로'(victimID, areaID)'를 가지고 있다면,이 쿼리는 단순한 조인/그룹 일 것입니다. 하지만 여러 컬럼을 가지고 있기 때문에 당신은 꼼짝 할 필요가 없습니다 ... sqlserver 또는 이와 유사한 경우 "unpivot"쿼리를 사용할 수 있습니다. 그렇지 않으면 클라이언트 측 코드에서 변환하는 것이 더 낫습니다. . –
당신은'UNION's의 괴물 시리즈를 할 수 있습니다, 그렇죠? 'Area'로 선택 'Face', sum (...) tbl_OHS_IncidentsPeople에서 'Count'로 UNION SELECT 'Head'를 'Area', sum (...) ... '아이디어를 얻습니다. 일종의 못 생겼다고 생각하고 영향을 고려하기 위해'설명 계획 '을 점검 하겠지만, 당신이 설명하는 결과 세트를 얻는 것처럼 보입니다. –
Marc B는 올바른 대답이 정규화라고 절대적으로 맞습니다. 그러나, 내 생각 엔 당신이 기존의 데이터베이스를 치고 있으며 앱을 사용하는 유일한 앱이 아니라는 것입니다. 그는 또한 클라이언트 측에서 수행하는 것이 거의 확실하게 가장 효율적일 것이라고 정확합니다. –