这个SQL在mysql中工作但我无法在SQL Server中执行此操作。
SELECT COUNT(*)
FROM (
SELECT
COUNT(postnID) AS Total,
postnID,
Unit_DBM,
job_type,
level,
internal_plantilla,
INCID,
ITEM_NO_2005,
position_type,
position_status
FROM paf_plantilla
GROUP BY
internal_plantilla,
level,
INCID,
postnID,
position_status
ORDER BY
internal_plantilla,
postnID
) AS num
错误:
ORDER BY子句在视图,内联函数中派生无效 表,子查询和公用表表达式,除非TOP,OFFSET 或者也指定了FOR XML。
答案 0 :(得分:2)
这在任何非MySQL的SQL实现中都不起作用。
grouped by
ORDER BY
的TOP
很可能不会按照您的想法行事(可能不会出错,但它也不对)由于第一点,很难弄清楚正确的查询 - 某种其他事物组合的计数。如果你解释我可以更新答案的内容。
答案 1 :(得分:0)
您无法选择不在group by
子句中的列。由于您正在执行count
,因此您实际上不需要order by
子句。试试以下内容:
SELECT COUNT(*)
FROM (
SELECT
COUNT(postnID) AS Total,
postnID,
Unit_DBM,
job_type,
level,
internal_plantilla,
INCID,
ITEM_NO_2005,
position_type,
position_status
FROM paf_plantilla
GROUP BY
postnID,
Unit_DBM,
job_type,
level,
internal_plantilla,
INCID,
ITEM_NO_2005,
position_type,
position_status
) AS num