테이블이 두 개 있어요. 첫 번째 테이블 (TableA)에는 week1, week3, week4, Week7 (동적)과 같은 일부 열과 orgno, employeeID, 직원 이름과 같은 일부 정적 열이 있습니다.
모든 동적 열이 다른 테이블 (TableB)에 있습니다.
이제 그런 쿼리를해야합니다
SELECT OrgNo,
SUM(SELECT ColName FROM TableB WHERE id=1),
SUM(SELECT ColName FROM TableB WHERE id=2),
SUM(SELECT ColName FROM TableB WHERE id=3),
SUM(SELECT ColName FROM TableB WHERE id=4),
FROM TableAO
GROUP BY OrgNo
저는 SQL 2000으로 작업하고 있습니다. 미리 감사드립니다.
예:
*
TableA:*
**Orgno EmployeeID EmployeeName Week1 week3 week4 Week7**
(1 1 XX 0 5 4 3)
(1 2 YY 1 6 0 2)
(2 1 XX 0 5 4 3)
(1 3 ZZ 1 6 0 2)
*TableB:*
**ID Name**
(1 Week1)
(2 Week3)
(3 Week4)
(4 Week7)
*Desire Output:*
**Orgno Week1 week3 week4 Week7**
(1 2 17 4 7)
(2 0 5 4 3)
TABLE B
여기에 넣을 필요는 없으며 , 첫 번째 테이블에서만 원하는 결과를 얻을 수 있습니다.
SELECT
Orgno,
SUM(Week1) Week1,
SUM(Week3) Week3,
SUM(Week4) Week4,
SUM(Week7) Week7
FROM
TableA
GROUp BY
Orgno
최신 정보
귀하의 의견에서 내가 이해하는 것은 첫 번째 테이블의 열 이름을 모르고 사용해야하는 경우 두 번째 테이블에서 해당 열 이름을 얻고 싶다는 것 dynamic SQL
입니다. 각 열에 여러 쿼리를 실행하는 대신 단일 쿼리로 가져와 동적 SQL 문자열과 연결할 수 있습니다. 이런 식으로 시도해 볼 수 있습니다.
declare @sql varchar(max)
set @sql = 'SELECT Orgno,'
declare @tbl varchar(100)
set @tbl = 'tableB' -- put your table name here
SELECT @sql = @sql +'SUM(' + name + '),'
FROM tablB
WHERE Id IN(1,2,3,4)
set @sql = LEFT(@sql, LEN(@sql) - 1)
set @sql = @sql + ' FROM ' + @tbl + ' Group BY Orgno'
EXEC (@sql)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다