我正在努力学习SQL查询,我很擅长做专家,很长一段时间我没有做过任何SQL,所以我很感激帮助!
我得到的数据就像
Username DeviceName
John Laptop
John Workstation
John Workstation
John Workstation
John Workstation1
John Workstation1
John Workstation1
John ThinClient
Julien Laptop2
Julien Workstation7
Julien Workstation7
Julien ThinClient
Julien ThinClient
Julien ThinClient
Julien ThinClient
Andrew ThinClient
Andrew ThinClient1
Andrew Thinclient2
我想知道的是,当其中一台设备是笔记本电脑时,使用2台以上设备的用户,这对我来说是困难的部分,所需的结果看起来像
John Workstation
John Workstation1
John laptop
John ThinClient
Julien Laptop2
Julien Workstation7
Julien ThinClient
安德鲁没有被列入名单,因为它没有笔记本电脑(DeviceName就像笔记本电脑一样)。
非常感谢您的帮助,到目前为止,我的所有代码都无效,而且我现在无法用现有的知识找到方法。
干杯, Ĵ
答案 0 :(得分:1)
我认为您的情况很容易转化为查询。因为你想要接近原始行的东西,我认为窗口函数使这更容易:
<mvn>/conf/
答案 1 :(得分:1)
我认为您可以获取笔记本电脑用户列表,然后从该列表中找到也有非笔记本电脑设备的人。这是一个独立的测试脚本。
declare @t table(username nvarchar(100),devicename nvarchar(100));
insert into @t select 'John','Laptop'
insert into @t select 'John','Workstation'
insert into @t select 'John','Workstation'
insert into @t select 'John','Workstation'
insert into @t select 'John','Workstation1'
insert into @t select 'John','Workstation1'
insert into @t select 'John','Workstation1'
insert into @t select 'John','ThinClient'
insert into @t select 'Julien','Laptop2'
insert into @t select 'Julien','Workstation7'
insert into @t select 'Julien','Workstation7'
insert into @t select 'Julien','ThinClient'
insert into @t select 'Julien','ThinClient'
insert into @t select 'Julien','ThinClient'
insert into @t select 'Julien','ThinClient'
insert into @t select 'Andrew','ThinClient'
insert into @t select 'Andrew','ThinClient1'
insert into @t select 'Andrew','Thinclient2'
insert into @t select 'Bob','Laptop9'
select distinct
username, devicename
from @t
where username in(select username from @t where devicename like 'laptop%') --they have a laptop
and username in(select username from @t where devicename not like 'laptop%') --they also have a non-laptop