【发布时间】:2016-07-13 21:08:42
【问题描述】:
今年夏天我一直在为一家公司做一个项目,即使我即将读研究生,我仍然是个菜鸟,我一直在处理 group by 和 order by 条款时遇到问题。
我尝试的任何方法似乎都不起作用,这是我到目前为止所拥有的(语法是 suuuuper 搞砸了 group by / order by)
SELECT DISTINCT ACT.ROW_ID , ACT.CREATED , MEM.FIRST_NAME , MEM.LAST_NAME , LOC.NAME , COUNT(*) as "number" , CAT.NAME , SER.NAME , EMP.FIRST_NAME , EMP.LAST_NAME , SER.DURATION , ACT.CASH , COS.NAME , ACT.COMMENTS , ACT.TIP FROM
S_ACTIVITY ACT, S_LOCATION LOC, S_CATEGORY CAT, S_EMPLOYEE EMP, S_SERVICE SER, S_COST_CODE COS, S_MEMBER MEM
WHERE ACT.EMPLOYEE_ID = EMP.ROW_ID AND ACT.SERVICE_ID = SER.ROW_ID AND ACT.CATEGORY_ID = CAT.ROW_ID AND ACT.COST_CODE_ID = COS.ROW_ID AND
ACT.LOCATION_ID = LOC.ROW_ID AND ACT.MEMBER_ID = MEM.ROW_ID
GROUP BY LOC.NAME
ORDER BY number
这与其他在线指南所说的计数一样,我需要某种排序或计数来订购...这是原始...
SELECT DISTINCT ACT.ROW_ID , ACT.CREATED , MEM.FIRST_NAME , MEM.LAST_NAME , LOC.NAME , CAT.NAME , SER.NAME , EMP.FIRST_NAME , EMP.LAST_NAME , SER.DURATION , ACT.CASH , COS.NAME , ACT.COMMENTS , ACT.TIP FROM
S_ACTIVITY ACT, S_LOCATION LOC, S_CATEGORY CAT, S_EMPLOYEE EMP, S_SERVICE SER, S_COST_CODE COS, S_MEMBER MEM
WHERE ACT.EMPLOYEE_ID = EMP.ROW_ID AND ACT.SERVICE_ID = SER.ROW_ID AND ACT.CATEGORY_ID = CAT.ROW_ID AND ACT.COST_CODE_ID = COS.ROW_ID AND
ACT.LOCATION_ID = LOC.ROW_ID AND ACT.MEMBER_ID = MEM.ROW_ID
GROUP BY LOC.NAME
ORDER BY LOC.NAME
感谢您的帮助,非常感谢! :)
【问题讨论】:
-
(1) 我删除了无关的数据库标签。随意添加回您真正使用的数据库的标签。 (2) 学习使用明确、正确的
JOIN语法。FROM子句中的逗号很难阅读。 -
我强烈建议您阅读以下内容:Visual Representation of SQL Joins
-
这些查询的
GROUP BY和ORDER BY子句没有明显的问题。
标签: sql group-by sql-order-by