【发布时间】:2026-01-16 09:35:01
【问题描述】:
我必须在我的 SQL Server 2008 上运行此查询。
我需要加入 2 个表(Gasper_object 和 Ticket)并获得同时显示 Gasper_object.id 的结果。
SELECT
TICKET.ACTION_CODE_KEY,
TICKET.OBJECT_KEY,
GASPER_OBJECT.ID,
CASE
WHEN ACTION_CODE_KEY IN (4,8) THEN 'OUT OF SERVICE'
WHEN ACTION_CODE_KEY IS NULL THEN 'IN SERVICE'
ELSE 'FAULTY SERVICE'
END "STATUS"
FROM
TICKET
INNER JOIN
GASPER_OBJECT ON ticket.OBJECT_KEY = GASPER_OBJECT.OBJECT_KEY
GROUP BY
ticket.object_key, GASPER_OBJECT.ID;
我该怎么办?
更新
这是我收到的一项任务
- 如果 ACTION_CODE 为 4 或 8,则列名应该停止服务
- 否则应该是错误的服务
- 如果对象根本没有票,那么它就在服务中
- GASPER_OBJECT.ID,状态应该是查询后的输出列
- 如果对象有不止一张符合标准的票证,请使用不同的
【问题讨论】:
-
有什么问题?
-
您的查询在语法上不正确。请使用示例数据和所需结果编辑您的问题。
-
@GordonLinoff 为什么我看不到查询有什么问题..?能指点一下吗?
-
语法没问题,但你的分组不一致。一般的 GROUP BY 规则是:如果指定了 GROUP BY 子句,则 SELECT 列表中的每个列引用必须要么标识一个分组列,要么是一个集合函数的参数。
-
ACTION_CODE_KEY不在聚合或分组中
标签: sql sql-server database join