我有以下内容:
CREATE TABLE [dbo].[a_table1]
(
[id] [int] IDENTITY(1,1) NOT NULL,
[caseID] [int] NOT NULL,
[officeID] [int] NOT NULL,
[location] [varchar](50) NULL
) ON [PRIMARY]
GO
INSERT INTO a_table1 VALUES (23, 44, 'hq')
INSERT INTO a_table1 VALUES (86, 44, 'hq')
INSERT INTO a_table1 VALUES (26, 44, 'hq')
INSERT INTO a_table1 VALUES (32, 44, 'hq')
INSERT INTO a_table1 VALUES (15, 34, 'satellite')
INSERT INTO a_table1 VALUES (32, 34, 'satellite')
INSERT INTO a_table1 VALUES (33, 34, 'satellite')
INSERT INTO a_table1 VALUES (86, 34, 'satellite')
INSERT INTO a_table1 VALUES (17, 34, 'satellite')
SELECT *
FROM a_table1
这是所需的输出:
案例ID | 办公室ID |
---|---|
23 | 44 |
86 | 44 |
26 | 44 |
32 | 44 |
15 | 44 |
33 | 44 |
17 | 44 |
基本上,从
caseId
位置获取所有 hq
,并仅获取卫星位置中不存在的 caseId
。
有什么想法吗?
一个解决方案是:
select caseid, 44 as officeid from (select distinct caseid from a_table1) x
结果:
caseid officeid
------- --------
15 44
17 44
23 44
26 44
32 44
33 44
86 44
请参阅 db<>fiddle 处的运行示例。
但是,我不明白为什么您删除了值
34
而改为 44
。