【发布时间】:2012-05-30 13:18:24
【问题描述】:
我正在尝试从 2 个不同数据库(全局和私有)中的 3 个不同表(状态、状态和案例)中输出 MSSQL 中的一些数据。
global.status // contains labels for global status ID's
fields (id, text)
private.status // contains labels for private status ID's
fields (id, text)
private.cases // contain case information, such as status
fields (status, count(status) AS amount)
我需要将cases表中的状态与两个状态表中的状态ID进行比较,输出如下:
statusID | text | amount
----------|-------------|--------
9993 | Open | 24
9991 | Closed | 3
9992 | Pending | 12
拥有全局和私有的原因是私有允许自定义私有状态,其中全局可在整个系统中访问。
我不成功的尝试是以下 sql
SELECT c.status,
COUNT(c.status) as amount,
ss.text,
gs.text
FROM [DB11111111].dbo].[cases] AS c, [DB11111111].[dbo].[status] AS ss, [global].[dbo].[status] AS gs
WHERE (c.status = ss.id) OR (c.status = gs.id)
GROUP BY c.status, ss.text, gs.text
ORDER BY amount DESC
你知道该怎么做吗?
【问题讨论】:
-
能否在私有状态表和全局状态表中找到相同的 ID?
-
是的,case 中的 status 字段包含一个等于 global.status 或 private.status 中的 id 的数字
标签: sql-server count group-by multiple-tables multiple-databases