Sql Can';t在GROUPBY子句中使用别名
我将此连接到大型查询中Sql Can';t在GROUPBY子句中使用别名,sql,tsql,Sql,Tsql,我将此连接到大型查询中 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
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 ("+@Codigo_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
但现在的问题是按子句分组,我将alias作为RIVA2
关键字“AS”附近的语法不正确
有人知道为什么会这样?。关于我想你打算:
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
注:
- 您只需按
中的未聚合列进行聚合分组依据
- 众所周知,在与
关联的大多数其他子句中,不能使用SELECT
中定义的列别名SELECT
中的
比
或
子句的集合简单得多
- 你应该给出一个名字
分组依据
。
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