2017-10-17 65 views
1

我有这个连接到大的查询不能使用别名到GROUP BY子句

LEFT JOIN --RIVA MICRO 
    (SELECT 
     TT.DATAAREAID, TT.VOUCHER,MA.MAINACCOUNTID AS AD, 
     SUM(TT.TAXBASEAMOUNT) AS TAXBASEAMOUNT, 
     SUM(TT.TAXAMOUNT) AS TAXAMOUNT 
    FROM 
     TAXTRANS TT 
    INNER MERGE JOIN 
     TAXTRANSDETAIL_BE MA ON TT.RECID = MA.RECID 
    WHERE 
     TT.TRANSDATE <= @FECHA AND ("[email protected]_RIVA+") 
    GROUP BY 
     TT.DATAAREAID, TT.VOUCHER, MA.MAINACCOUNTID) AS RIVA2 ON Asiento.Asiento = RIVA2.VOUCHER 
                   AND Asiento.Cuenta = RIVA2.AD 
                   AND Asiento.Empresa = RIVA2.DATAAREAID 

它正常工作,但现在我实现了一个临时表,所以我的查询是这样的:

LEFT JOIN 
    (SELECT 
     DATAAREAID, VOUCHER, MAINACCOUNTID, 
     SUM(TAXBASEAMOUNT) AS TAXBASEAMOUNT, SUM(TAXAMOUNT) 
    FROM 
     ##TTM TT 
    WHERE 
     (TT.TAXCODE LIKE 'RIVA11DPT' OR TT.TAXCODE LIKE 'RIVA16DPT' 
     OR TT.TAXCODE LIKE 'RIVA16T') 
    GROUP BY 
     TT.TAXAMOUNT, TT.TAXBASEAMOUNT, TT.TAXCODE, TT.DATAAREAID, 
     TT.VOUCHER, TT.MAINACCOUNTID) AS RIVA2 ON Asiento.Asiento = RIVA2.VOUCHER 
               AND Asiento.Cuenta = RIVA2.MAINACCOUNTID 
               AND Asiento.Empresa = RIVA2.DATAAREAID 

但现在问题是进入GROUP BY CLAUSE,我正在进入别名AS RIVA2

关键字'AS'附近的语法不正确。

有人知道它为什么会发生?问候

+0

可能的重复的[SQL - 使用别名在Group By](https://stackoverflow.com/questions/3841295/sql-using-alias-in-group-by) – Adam

+0

我之前检查过该链接,但这不是问题,我已经更新了我的问题,以便更明确@Adam – Pepe

+0

您可以发布整个查询吗?只使用查询的这一部分,很难判断你为什么会遇到这个问题。 – wizard07KSU

回答

2

我想你打算:

LEFT JOIN 
(SELECT TT.DATAAREAID, TT.VOUCHER, TT.MAINACCOUNTID, 
     SUM(TT.TAXBASEAMOUNT) AS TAXBASEAMOUNT, SUM(TT.TAXAMOUNT) 
FROM ##TTM TT 
WHERE TT.TAXCODE IN ('RIVA11DPT', 'RIVA16DPT', 'RIVA16T') 
GROUP BY TT.DATAAREAID, TT.VOUCHER, TT.MAINACCOUNTID 
) RIVA2 
ON Asiento.Asiento = RIVA2.VOUCHER AND 
    Asiento.Cuenta = RIVA2.MAINACCOUNTID AND 
    Asiento.Empresa = RIVA2.DATAAREAID 

注:

  • 您只需要通过在GROUP BY未聚集列聚集。
  • 众所周知,在与该SELECT相关的大多数其他子句中,不能使用SELECT中定义的列别名。
  • INOR条款的集合简单得多。
  • 您应该给SUM(TT.TAXAMOUNT)一个名字。
+0

你有什么改变,我可以看到你encapsule我在哪里使用,但你改变什么? – Pepe

+0

@Pepe。 ..看看“GROUP BY”。 –