Я не могу понять, что я делаю неправильно в этом PIVOT - PullRequest
0 голосов
/ 18 сентября 2018

Я искал сайт, и я думаю, что я делаю это правильно, но уже поздно, и у меня, должно быть, мозг мертвый в этот момент. Что не так с этим PIVOT SQL?

SELECT  AccountNum  
        , MONTH(MAX(DealBookDate)) AS Month  
        , YEAR(MAX(DealBookDate))  AS Year  
FROM  
(  
    SELECT AccountNum   
         , MONTH(MAX(DealBookDate)) AS mth   
         , YEAR(MAX(DealBookDate))  AS yr   
         , DealBookDate  
    FROM vehicle.sales  
    WHERE accountnum IN  
    ('R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R9', 'R10', 'R11',   
'R12', 'R13', 'R14', 'R15')  
    GROUP BY  AccountNum  
            , DealBookDate  
) AS SourceTable  
PIVOT  
(  
  COUNT(DealBookDate)  
    FOR AccountNum  
    IN  
    (  
    R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15
    )  
)  
AS PivotTable;  

Вот сообщение об ошибке, которое я получаю:

Сообщение 207, Уровень 16, Состояние 1, Строка 31 Неверное имя столбца 'AccountNum. Сообщение 207, Уровень 16, Состояние 1, Строка 32 Неправильный столбец название 'DealBookDate'. Сообщение 207, уровень 16, состояние 1, строка 33 недействительна имя столбца 'DealBookDate'.

Пожалуйста, будь добр ко мне, ведь это понедельник.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Это правильный синтаксис.

CREATE SCHEMA vehicle
GO

CREATE TABLE vehicle.sales
(AccountNum VARCHAR(5) NULL,
DealBookDate DATETIME NULL)

INSERT INTO vehicle.sales (AccountNum, DealBookDate) VALUES('R1', '2018-09-18')
INSERT INTO vehicle.sales (AccountNum, DealBookDate) VALUES('R2', '2018-09-18')
INSERT INTO vehicle.sales (AccountNum, DealBookDate) VALUES('R3', '2018-09-18')
INSERT INTO vehicle.sales (AccountNum, DealBookDate) VALUES('R4', '2018-09-18')
INSERT INTO vehicle.sales (AccountNum, DealBookDate) VALUES('R5', '2018-09-18')
INSERT INTO vehicle.sales (AccountNum, DealBookDate) VALUES('R6', '2018-09-18')
INSERT INTO vehicle.sales (AccountNum, DealBookDate) VALUES('R7', '2018-09-18')
INSERT INTO vehicle.sales (AccountNum, DealBookDate) VALUES('R8', '2018-09-18')
INSERT INTO vehicle.sales (AccountNum, DealBookDate) VALUES('R9', '2018-09-18')
INSERT INTO vehicle.sales (AccountNum, DealBookDate) VALUES('R10', '2018-09-18')
INSERT INTO vehicle.sales (AccountNum, DealBookDate) VALUES('R11', '2018-09-18')
INSERT INTO vehicle.sales (AccountNum, DealBookDate) VALUES('R12', '2018-09-18')
INSERT INTO vehicle.sales (AccountNum, DealBookDate) VALUES('R13', '2018-09-18')
INSERT INTO vehicle.sales (AccountNum, DealBookDate) VALUES('R14', '2018-09-18')
INSERT INTO vehicle.sales (AccountNum, DealBookDate) VALUES('R15', '2018-09-18')

SELECT AccountNum   
        , MONTH(MAX(DealBookDate)) AS mth   
        , YEAR(MAX(DealBookDate))  AS yr   
        , DealBookDate  
FROM vehicle.sales  
WHERE accountnum IN  
('R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R9', 'R10', 'R11','R12', 'R13', 'R14', 'R15')  
GROUP BY  AccountNum, DealBookDate  

SELECT  R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15,
    mth, yr
FROM  
(  
    SELECT AccountNum   
         , MONTH(MAX(DealBookDate)) AS mth   
         , YEAR(MAX(DealBookDate))  AS yr   
         , DealBookDate  
    FROM vehicle.sales  
    WHERE accountnum IN  
    ('R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R9', 'R10', 'R11','R12', 'R13', 'R14', 'R15')  
    GROUP BY  AccountNum, DealBookDate  
) AS SourceTable  
PIVOT  
(  
  COUNT(DealBookDate)  
    FOR AccountNum  
    IN  (R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15)  
)  
AS PivotTable;  

DROP TABLE vehicle.sales
GO
DROP SCHEMA vehicle
GO
0 голосов
/ 18 сентября 2018

попробуйте ниже пути

   SELECT   *  
        FROM  
        (  
            SELECT * 
            FROM vehicle.sales  
            WHERE accountnum IN  
            ('R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8', 'R9', 'R10', 'R11',   
        'R12', 'R13', 'R14', 'R15')             
        ) AS SourceTable  
        PIVOT  
        (  
          COUNT(DealBookDate)  
            FOR AccountNum  
            IN  
            (  
            [R1], [R2], [R3], [R4], [R5], [R6],[R7],[R8],[R9], [R10], [R11], [R12], [R13], [R14], [R15]
            )  
        )  
        AS PivotTable; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...