我是新来的,也是SQL新手。我搜索过,但似乎无法找到我的问题的答案。也许你的大师可以提供帮助。我有一张表,其中包含客户ID号及其状态(编号)等。例如,几行就是这样的:
Status - ACCTnum - CustName - City - State 95 - A330 - Billy Burger - Cleveland - Oh 11 - A330/Q - Billy Burger Store#2 - Cleveland - Oh 15 - B250 - Spanky - Columbus - Oh 15 - B250/Z - Spanky#2 - Springfield - OH 15 - B250/Y - Spanky#3 - Miami - FL
我们在这里看到,有一个主帐号和一个子帐号,但它们占据相同的字段。账户A330是比利汉堡,他的第二家商店是A330 / Q.状态列用于其销售员编号。如果数字是95,那么它是一个死账。问题是,就我们的目的而言,如果子账户信誉良好,主账户的状态不会死亡。所以我需要的是一个基本上可以选择符合条件的任何记录的查询:“如果ACCTnum是状态95,并且子帐户不是状态95”
理想情况下,如果我在上面的表上运行查询,它应该返回前两个记录,因为A330是状态95而A330 / Q不是。它应该忽略其他记录。
我尝试过INTERSECT命令没有成功(我假设它只适用于两个不同的表?)。我是一个完整的SQL n00b,温柔;)
答案 0 :(得分:1)
select distinct c1.*
from Customers c1
inner join Customers c2 ON c2.ACCTnum LIKE c1.ACCTnum + '%'
where c1.ACCTnum.status = 95 and c2.ACCTnum <> 95