【发布时间】:2018-11-09 02:05:41
【问题描述】:
这是我想做的:
SELECT
TOP 25 tblTasks.Task,
tblTasks.Task_Status,
tblTasks.Award_Date,
tblTasks.End_Date,
Sum(tblPRs.Ceiling_Final) AS SumOfCeiling_Final,
tblTasks.Program, tblTasks.Prime, tblClient.Org_Top
FROM
(tblTasks INNER JOIN tblClient ON tblTasks.Task_ID = tblClient.Task_ID)
INNER JOIN tblPRs ON tblTasks.Task_ID = tblPRs.Task_ID
GROUP BY
tblTasks.Task,
tblTasks.Task_Status,
tblTasks.Award_Date,
tblTasks.End_Date,
tblTasks.Program,
tblTasks.Prime, tblClient.Org_Top
HAVING
(((tblTasks.Task_Status)="open"))
UNION
SELECT
TOP 25 tblTasks.Task,
tblTasks.Task_Status,
tblTasks.Award_Date,
tblTasks.End_Date, Sum(tblPRs.Ceiling_Final) AS SumOfCeiling_Final,
tblTasks.Program,
tblTasks.Prime, tblClient.Org_Top
FROM
(tblTasks INNER JOIN tblClient ON tblTasks.Task_ID = tblClient.Task_ID)
INNER JOIN tblPRs ON tblTasks.Task_ID = tblPRs.Task_ID
GROUP BY
tblTasks.Task,
tblTasks.Task_Status,
tblTasks.Award_Date,
tblTasks.End_Date,
tblTasks.Program,
tblTasks.Prime,
tblClient.Org_Top
HAVING
(((tblTasks.Task_Status)="pending"))
ORDER BY
Sum(tblPRs.Ceiling_Final) DESC;
我正在将 SQL 输入 MS Access。两个查询之间的唯一区别是 HAVING 参数值。单个查询来自 MS Access 查询设计。与 ORDER BY 语句配对时,每个单独的查询都可以正常工作并给我预期的结果。当我尝试将它们都作为 UNION 运行时,出现以下错误:
ORDER BY 表达式 (Sum(tblPRs.Ceiling_Final)) 包括字段 查询未选择的。只有那些请求的字段 第一个查询可以包含在 ORDER BY 表达式中。
【问题讨论】:
-
您是否希望 从 2 个查询中的每个 中获得 25 行(总共 50 行)?还是只想要前 25 名?
-
每个 25 个,总共 50 个。我实际上可以将第二个查询更改为 10 个,总共 35 个。
-
感谢版主清理我的帖子。
标签: sql database ms-access sql-order-by union