我正在尝试创建一个选择语句
我需要从一个表中收集一条记录,该记录等于另一个表中使用的相同代码。
更好的说法是,客户从下拉列表中选择一个城市和该城市的类别。当客户端点击下一步时,会显示该城市中符合该类别的各个地方。但我无法弄清楚我要去哪里错了。
现在,当客户选择一个城市时,每个城市都会读取两条记录,一个正确的城市代码和一个以“bx”为首字母的邮箱代码
在我的第一个查询中,为了消除重复,我说
select c.[Description] from city c
where c.Provincecode like 'EC' and
c.citycode in (select c.citycode from City c
where SUBSTRING(c.citycode,0,3) not like 'bx')
这给了我一个城市的名字。
但是现在,如果客户选择了,例如,只收现金的地方,那么结果中应该只显示一条记录
但尽我所能,我无法获得正确的语法
我试过了:
select c.[Description] from city c
where c.Provincecode like 'EC' and
c.citycode in (select c.citycode from City c
where SUBSTRING(c.citycode,0,3) not like 'bx')
and exists (select * from Customers cu
where cu.Category like 'SC' and cu.Province like 'EC')
但这带来了比预期更多的结果
这是使用访问数据库完成的,但我使用 SQL 进行编码,我将其重新写入访问。这不是问题
所以如果有人可以请提供 SQL 答案,我可以从那里做剩下的
我不确定我是否应该加入。我确实尝试过
select * from
(select c.[Description] from city c
where c.Provincecode like 'EC' and
c.citycode in (select c.citycode from City c
where SUBSTRING(c.citycode,0,3) not like 'bx')) x
join Customers on province=city.provincecode where Category like 'SC'
但我收到多部分标识符的错误无法绑定
编辑
这是新的查询
select *
from
(
select c.*
from city c
where c.Provincecode like 'EC'
and c.citycode in
(
select c.citycode
from City c
where SUBSTRING(c.citycode,0,3) not like 'bx'
)
) x
join
Customers
on province=x.Provincecode
where Category like 'SC'
返回的是
如您所见,以 C Strydom 作为客户的结果太多了,但所有城市都在那里
对于此特定示例,应仅显示一条记录,第二条记录