2017-10-06 12 views
0

への句は、私はこのクエリ持っWHERE後:Can't利用GROUP BYサブクエリ

left JOIN 
(SELECT * FROM ##TTA TT WHERE (TT.TAXCODE LIKE 'IVA0A' OR TT.TAXCODE LIKE 'IVA0EXPT')) TT 
GROUP BY TT.DATAAREAID, tt.VOUCHER, TT.MAINACCOUNTID 
AS TTIVA0A ON Asiento.Asiento = TTIVA0A.VOUCHER 
AND Asiento.Cuenta = TTIVA0A.AD 
AND Asiento.Empresa = TTIVA0A.DATAAREAID 

問題は、GROUP BY句の中にあるが、私は得る:キーワード 'グループ' の近くに

不適切な構文。

GROUP BYWHERE句の後に誰も私がなぜ使用できないのか説明できますか?

+2

クエリ全体を含めてください。クエリは 'LEFT JOIN'で始まらない –

+2

あなたのグループbyがあなたのサブクエリの外にあるので。かっこを移動すると、これはもはや問題にはなりません。 –

+1

私はどこに表示されません - 私は結合を参照してください。 'GROUP BY'の前に' ON'が必要になるか、エラーが発生します – Hogan

答えて

2

あなたの書式設定にもっと注意を払った場合、これは痛いほど明白です。

ここにグループを適切な場所に配置したコードがあります。

left JOIN 
(
    SELECT * 
    FROM ##TTA TT 
    WHERE TT.TAXCODE LIKE 'IVA0A' 
     OR TT.TAXCODE LIKE 'IVA0EXPT' 
    GROUP BY TT.DATAAREAID 
     , TT.VOUCHER 
     , TT.MAINACCOUNTID 
) AS TTIVA0A ON Asiento.Asiento = TTIVA0A.VOUCHER 
    AND Asiento.Cuenta = TTIVA0A.AD 
    AND Asiento.Empresa = TTIVA0A.DATAAREAID 
+0

はい、あなたは正しいでしょう。ありがとうございました! – Benny

+1

サブクエリが書かれている(SELECT *)ので、TT.DTAREAIDとTT.VOUCHER、TT MAINACCOUNTIDがテーブル内の唯一のカラムであると仮定するか、これはまだ有効ではないことに注意してください。 – Matt

+1

Agreed @Matt。そこには多くのことがあります。おそらく私は少し違った(そして安全に) –