TAILIEUCHUNG - Hướng dẫn học Microsoft SQL Server 2008 part 36

Năng động, truy vấn Crosstab Các hàng của một truy vấn Crosstab sẽ tự động được tự động tạo ra bởi sự kết hợp trong thời gian chạy, tuy nhiên, trong phương pháp của cả hai PIVOT và CASE các | Part II Manipulating Data With Select The CASE expression method s query execution plan is identical to the plan generated by the PIVOT method SELECT CASE GROUPING Category WHEN 0 THEN Category WHEN 1 THEN All Categories END AS Category SUM CASE WHEN Region MidWest THEN Amount ELSE 0 END AS MidWest SUM CASE WHEN Region NorthEast THEN Amount ELSE 0 END AS NorthEast SUM CASE WHEN Region South THEN Amount ELSE 0 END AS South SUM CASE WHEN Region West THEN Amount ELSE 0 END AS West SUM Amount AS Total FROM RawData GROUP BY RollUp Category ORDER BY Coalesce Category ZZZZ Result Category MidWest NorthEast South West Total X 24 0 165 36 225 Y 38 181 287 0 506 Z 83 55 33 44 215 All Categories 145 236 485 80 946 Dynamic crosstab queries The rows of a crosstab query are automatically dynamically generated by the aggregation at runtime however in both the PIVOT method and the CASE expression method the crosstab columns region in this example must be hard-coded in the SQL statement. The only way to create a crosstab query with dynamic columns is to determine the columns at execution time and assemble a dynamic SQL command to execute the crosstab query. While it could be done with a cursor the following example uses a multiple-assignment variable SELECT to create the list of regions in the @SQLStr. A little string manipulation to assemble the pivot statement and an sp_executesql command completes the job DECLARE @SQLStr NVARCHAR 1024 SELECT @SQLStr COALESCE @SQLStr a . Column FROM SELECT DISTINCT Region AS Column FROM RawData AS a SET @SQLStr SELECT Category @SQLStr FROM Select Category Region Amount from RawData sq 312 Aggregating Data 12 PIVOT Sum Amount FOR Region IN @SQLStr AS pt PRINT @SQLStr EXEC sp_executesql @SQLStr Result SELECT Category MidWest NorthEast South West FROM Select Category Region Amount from RawData sq PIVOT Sum Amount FOR Region IN MidWest NorthEast South West AS pt Category MidWest NorthEast South West X 24 NULL 165 36 Y 38 181 287

TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.