Czy wiesz, czego brakuje na zapytaniu SQL Server SSRS, próbuję wyodrębnić faktury dostawcy do roku, kwartał, miesiąc i dzień, tylko od stycznia do grudnia 2019 r. Moje wyjście powinno grupować według listy następujących informacji, rok / kwartał / Miesiąc / od utworzonej daty.

Po uruchomieniu zapytania otrzymuję następujący błąd:

MSG 102, poziom 15, stan 1, linia 32
Nieprawidłowa składnia w pobliżu "Rok"

Co może być problemem?

Mój kod został wyjaśniony z następującego linku witryny, w odniesieniu do odniesienia Uwzględniłem moje szczegóły kodu dla lepszego wyjaśnienia: https://www.sqlservertutorial.net/sql-server-date-functions/sql-server-datepart-function/

Wypróbowałem następujący kod:

SELECT DISTINCT
        DATEPART("YEAR", ab.Created_Date) [year], 
        DATEPART("QUARTER", ab.Created_Date) [quarter], 
        DATEPART("MONTH", ab.Created_Date) [month],
        ab.Invoice_Type_ID,
        ab.Created_Date,
        ab.Vendor_ID,
        a.Vendor_Name,
        a.Vendor_Type
FROM 
    dbo.vendors AS a
INNER JOIN
    dbo.invoices AS ab ON a.Vendor_ID = ab.Vendor_ID
WHERE   
    ab.Created_Date IS NOT NULL
GROUP BY  
    DATEPART("YEAR", ab.Created_Date) [year], 
    DATEPART("QUARTER", ab.Created_Date) [quarter], 
    DATEPART("MONTH", ab.Created_Date) [month],
    ab.Invoice_Type_ID,
    ab.Created_Date,
    ab.Vendor_ID,
    a.Vendor_Name,
    a.Vendor_Type
ORDER BY  
    [YEAR] DESC, 
    [QUARTER], 
    [MONTH]
0
hmm4089 17 styczeń 2020, 17:57

1 odpowiedź

Najlepsza odpowiedź

Włączyłeś aliasy ([Rok], [Dzielnicy], [miesiąc]) w swojej grupie według ekspresji, musisz na przykład usunąć alias (ale nie wyrażenie)

GROUP BY DATEPART("YEAR", ab.Created_Date) [year],
...

Byłoby

GROUP BY DATEPART("YEAR", ab.Created_Date),
...
0
Alan Schofield 17 styczeń 2020, 15:08