簡體   English   中英

需要幫助“關鍵字GROUP附近的語法不正確”

[英]Need help with “Incorrect syntax near keyword GROUP”

我不知道我在做什么錯。 我不斷收到不正確的語法錯誤,好像我糾正了一個,然后彈出了下一行。 現在,我在關鍵字GROUP上收到“語法不正確。在此網站上,我有幾個版本的問題。到目前為止,我非常感謝您的幫助。我只需要進行一些改進即可使此報告生效。任何人都知道明尼蘇達州sql的良好類。這些書涵蓋了基礎知識,我需要復雜的sql類。

SELECT fgc, sum(Totpay) as Totpay, Sum(TotChg) as TotChg
from
(                     
    SELECT fgc, sum(pay) as TotPay, 0 as TotChg
    from 
    (
        SELECT fgc, pay,
               CASE 
                   WHEN  [date]<= 30 THEN 'pmt 0-30'      
                   WHEN [date]> 30 AND [date] <= 60 THEN 'pmt 30-60'
                   WHEN [date]> 61 AND [date] <= 90 THEN 'pmt 61-90'
                   WHEN [date]> 91 AND [date] <= 120 THEN 'pmt 91-120'
                   WHEN [date]> 121 AND [date] <= 150 THEN 'pmt 121-150'
                   WHEN [date]> 151 AND [date] <= 180 THEN 'pmt 151-180'
                   ELSE 'pmt 181+' 
               END
        FROM @Pay 
        GROUP BY fgc

        UNION

        SELECT fgc, 0 as TotPay, sum(chg) as TotChg
        from
        (
            SELECT fgc, chg,
                   CASE 
                       WHEN [date]<= 30 THEN 'charge 0-30'      
                       WHEN [date]> 30 AND [date] <= 60 THEN 'charge 30-60' 
                       WHEN [date]> 61 AND [date] <= 90 THEN 'charge 61-90'
                       WHEN [date]> 91 AND [date] <= 120 THEN 'charge 91-120'
                       WHEN [date]> 121 AND [date] <= 150 THEN 'charge 121-150'
                       WHEN [date]> 151 AND [date] <= 180 THEN 'charge 151-180'
                       ELSE 'charge 181+' 
                   END
            FROM @Chg
        )
        GROUP BY fgc 
    )
    GROUP BY fgc

您沒有將別名用於內聯查詢。 以下沒有給我任何語法錯誤。

        SELECT fgc, sum(Totpay) as Totpay, Sum(TotChg) as TotChg
        from
        (                     
        SELECT fgc, sum(pay) as TotPay, 0 as TotChg
        from 
            (SELECT fgc, pay,
                CASE 
                WHEN  [date]<= 30 THEN 'pmt 0-30'      
                WHEN [date]> 30 AND [date] <= 60 THEN 'pmt 30-60'
                WHEN [date]> 61 AND [date] <= 90 THEN 'pmt 61-90'
                WHEN [date]> 91 AND [date] <= 120 THEN 'pmt 91-120'
                WHEN [date]> 121 AND [date] <= 150 THEN 'pmt 121-150'
                WHEN [date]> 151 AND [date] <= 180 THEN 'pmt 151-180'
                ELSE 'pmt 181+' 
                END
            FROM @Pay 
            GROUP BY fgc 

            UNION

            SELECT fgc, 0 as TotPay, sum(chg) as TotChg
            from
                (SELECT fgc, chg,
                    CASE 
                    WHEN [date]<= 30 THEN 'charge 0-30'      
                    WHEN [date]> 30 AND [date] <= 60 THEN 'charge 30-60' 
                    WHEN [date]> 61 AND [date] <= 90 THEN 'charge 61-90'
                    WHEN [date]> 91 AND [date] <= 120 THEN 'charge 91-120'
                    WHEN [date]> 121 AND [date] <= 150 THEN 'charge 121-150'
                    WHEN [date]> 151 AND [date] <= 180 THEN 'charge 151-180'
                    ELSE 'charge 181+' 
                    END
                 FROM @Chg) as innerTable2
             GROUP BY fgc 
            ) As innertable1
        GROUP BY fgc
    )  as outerTable

基本上,在使用聚合函數的情況下使用GROUP BY關鍵字,並且要使用它,必須在不使用聚合函數的情況下對所有列進行分組。

例如:代替GROUP BY fgc,應使用GROUP BY(fgc,pay,aliasName)。

更改:

SELECT fgc,付款,當[date] <= 30 THEN'pmt 0-30'時
當[日期]> 30 AND [日期] <= 60則'pmt 30-60'當[日期]> 61 AND [日期] <= 90則[日期]> 91 AND [日期] <= 120 THEN'pmt 91-120'when [date]> 121 and [date] <= 150 THEN'pmt 121-150'when [date]> 151 AND [date] <= 180 THEN'pmt 151-180' ELSE'pmt 181+'結束於@Pay GROUP BY fgc

進入

SELECT fgc,付款,當[date] <= 30 THEN'pmt 0-30'時
當[日期]> 30 AND [日期] <= 60則'pmt 30-60'當[日期]> 61 AND [日期] <= 90則[日期]> 91 AND [日期] <= 120 THEN'pmt 91-120'when [date]> 121 and [date] <= 150 THEN'pmt 121-150'when [date]> 151 AND [date] <= 180 THEN'pmt 151-180' ELSE'pmt 181+'END作為別名,來自@Pay GROUP BY(fgc,pay,別名)

希望能有所幫助。

P / S:tks Gabe糾正了我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM