많은 수의 행에 N 개의 열을 제공하는 우수한 T-SQL 쿼리를 찾습니다. 그러나 열 수는 각 행마다 동일하지 않습니다.T-SQL N 개의 행을 열로 변환
예를 들어 - 약 1 백만 행의 다음과 같은 주문 테이블이 있습니다.
Order OrderID Date ======== ======== 1 20160102 2 20160402
각 주문에는 N 개의 주문 라인이있을 수 있습니다.
내 orderline 테이블에는 약 150 만 개의 행이 있습니다.
OrderID Date ProductID1 Amount1 ProductID2 Amount2 ProductID3 Amount3 ======== ======== ========== ======= ========== ======= ========== ======= 1 20160102 3245 299.00 2 20160402 9876 799.00 5466 899.00 7752 599.00
orderlines의 수는 각 주문 (50 등)를 크게 할 수
OrderLine OrderID OrderLine ProductID Amount ======== ======== ========== ========== 1 1 3245 299.00 2 1 9876 799.00 2 2 5466 899.00 2 3 7752 599.00
는 I는 다음과 같이 원하는 endresult. 그리고 그것은 또 다른 옵션은 아마 선회 할 수있는 매우 저조한
SELECT OrderID, Date, (SELECT ProductID FROM ORDERLINE OI JOIN O ON O.OrderID=OI.OrderID WHERE ORDERLINE=1) AS ProductID1, (SELECT Amount FROM ORDERLINE OI JOIN O ON O.OrderID=OI.OrderID WHERE ORDERLINE=1) AS Amount1, ... (SELECT ProductID FROM ORDERLINE OI JOIN O ON O.OrderID=OI.OrderID WHERE ORDERLINE=N) AS ProductIDN, (SELECT Amount FROM ORDERLINE OI JOIN O ON O.OrderID=OI.OrderID WHERE ORDERLINE=N) AS AmountN FROM ORDER O
수행 할 것 -
나는 내가 부속 선택을 사용할 수 있지만 그 부속 선택의 N-수를 필요 같아요. 그러나 내가 보았 듯이 "전통적인"피봇 팅이 아닙니다. 역동적 인 피보팅 일 것입니다.
하지만 어떻게 보이고 실행되는지 확실하지 않습니다.
의 사용 가능한 복제 (HTTP 동적으로 이동해야하는 경우 [SQL 서버 동적 PIVOT 쿼리?] : /를 /stackoverflow.com/questions/10404348/sql-server-dynamic-pivot-query) – iamdave