Monday, October 3, 2011

MSSQL data how to PIVOT row content to column name

Энэ нь бүртгэгдсэн мөрүүдийг аль нэг сонгосон ( код: Month гэх мэт ) талбарын хувьд бүлэглэн гарсан үр дүнг хэвтээ чиглэлд ( талбаруудад ) хөрвүүлэх үйл ажиллагаа. Ихэнхдээ энэ нь хязгаарлагдмал утга агуулдаг талбаруудад хэрэгжинэ. Жишээ нь 24 цаг, сарын хоногууд, Төлөвүүд гэх мэт өгөгдлийг бүртгэсэн мөрүүдийг баганын дагуу болгон хөрвүүлэхэд ашиглана.

CREATE TABLE Sales (Human nvarchar(50), [Month] VARCHAR(20) ,SaleAmount INT)

INSERT INTO Sales VALUES ('boroo', 'January', 100)
INSERT INTO Sales VALUES ('bataa', 'January', 200)
INSERT INTO Sales VALUES ('boroo', 'February', 300)
INSERT INTO Sales VALUES ('boroo', 'February', 400)

SELECT    Human
      , [January]
      , [February]
      , [March]
FROM    ( SELECT  Human
                  , [Month]
                  , SaleAmount
          FROM      Sales
        ) p PIVOT ( SUM(SaleAmount)
                    FOR [Month]
                      IN ([January],[February],[March])
                  ) AS pvt

No comments: