기본적으로 각 피고용인 당 비용 코드 당 total_work_hours를 표시하는 피벗 쿼리를 만들었습니다.피벗에 표시된 중복 행 제거
이 내 원하는 출력 :
employeeno 8322.170 10184.2648 8321.169 10184.2649 <- costcodes
--------------------------------------------------------------------------
080418 10.00 1.50 NULL NULL
080441 6.50 NULL 1.00 3.00
그러나 이것은 내 쿼리의 결과입니다
employeeno costcoding hour_per_costcode
--------------------------------------------------
PH080418 8322.170 10.00
PH080418 10184.2648 1.50
PH080441 8321.169 1.00
PH080441 8322.170 6.50
PH080441 10184.2649 3.00
이 :
employeeno 8322.170 10184.2648 8321.169 10184.2649 <- costcodes
--------------------------------------------------------------------------
080418 10.00 NULL NULL NULL
080418 NULL 1.50 NULL NULL
080441 NULL NULL 1.00 NULL
080441 6.50 NULL NULL NULL
080441 NULL NULL NULL 3.00
이 내 내부 쿼리의 결과는 내 검색어 :
WITH PivotData AS
(SELECT wa.id,wa.sitecode, wa.companycode, wa.startdate, wa.enddate,
wa.description, wa.ratetypeid, wa_details.employeeno,
CAST(wa_details.costcode AS NVARCHAR(MAX)) + '.' +
CAST(wa_details.subcostcode AS NVARCHAR(MAX)) costcoding ,
wa_details.subcostcode, wa_details.hrswork [hour_per_costcode],
view_ttl_hours.ttl_work_hrs
FROM workallocation wa
INNER JOIN workallocation_details wa_details
ON wa.id = wa_details.workallocationid
INNER JOIN
(SELECT SUM(ttl_work_hrs) ttl_work_hrs, employee_id
FROM vwu_SUM_TIMESHEET_DAILY
WHERE TKSDATE BETWEEN '02-09-2012' AND '02-09-2012'
GROUP BY employee_id
) view_ttl_hours
ON wa_details.employeeno=view_ttl_hours.employee_id WHERE wa.id=99
)
SELECT employeeno, [8322.170], [10184.2648], [8321.169], [10184.2649]
FROM PivotData
PIVOT (MAX([hour_per_costcode])
FOR costcoding
IN ([8322.170], [10184.2648], [8321.169], [10184.2649])
) AS PivotResult
ORDER BY employeeno;
내 질문에 내 원하는 결과가 달성 될 수 있도록 여러 행에 대한 값을 어떻게 통합 할 수 있습니까? 또한 크로스 탭 쿼리를 시도하지만 결과도 동일합니다.
이 문제를 해결하는 방법에 대한 지침이 필요합니다. 도울 수 있니?
당신이 마지막 쿼리에서 선택을 변경하면'SELECT *'원인을 꽤 명백해야한다입니다 문제. 필자가 제안 할 수있는 다른 권장 사항은 피벗에서 직접 사용하지 않는 PivotData의 모든 것을 제거하는 것입니다. – cadrell0
@ cadrell0 - 답장을 보내 주셔서 감사합니다. 나는 이미 오래 전에 복제본을 보았지만 내 세부 테이블은 employeeno, 비용 코드, subcostcode 및 hrswork로 구성되어 있습니다. 모두 고유 키입니다. –
@ cadrell0 님의 의견에 근거합니다. (예 : PivotData2와 같이 (PivotData에서 [employereen, [8322.170], [10184.2648] ...을 선택하십시오.))와 같은'with' 절에 다른 쿼리를 추가 한 다음 마지막 쿼리를 SELECT * ... FROM PivotData2로 변경하십시오. . – fankt