读书人

一个SQL SERVER中关于select查询的一个

发布时间: 2013-07-08 14:13:00 作者: rapoo

一个SQL SERVER中关于select查询的一个问题
本帖最后由 lxqlyld 于 2013-07-02 14:41:11 编辑 小弟在程序中遇到一个问题,直接说有点不清楚,举例子吧,例如:
一个表A中有字段“销售单号”、“客户姓名”、“时间”、“日期”等等。
一个表B中有字段“销售单号”、“商品代码”、“商品名”等等。
两个表以“销售单号”进行关联

现在以“客户姓名”,例如为“小泉”,和“商品代码”,例如为“001”,为条件对这两个表进行查询,
例如表A中有数据:
销售单号 客户姓名 日期 时间
201371337 小泉 2013 12:50:06
201371998 小李 2012 11:34:07
201372568 小泉 2011 10:20:12


表B中有数据:
销售单号 商品代码 商品名
201371337 001 饼干
201371337 002 面包
201371337 003 大饼
201371998 008 香烟
201372568 004 大蒜

我想要的查询结果是:
销售单号 客户姓名 日期 时间
201371337 小泉 2013 12:50:06


即结果中“客户姓名”要是“小泉”,同时在表B中,“销售单号”等于201371337的记录中至少有一条记录的“商品代码”是001。

201372568 小泉 2011 10:20:12,该记录不显示,因为在表B中201372568下面没有一条记录的商品代码是001


请问各位高手,这个查询语句要怎么写啊,非常感谢

[解决办法]
select A.* from A inner join B on A.销售单号=B.销售单号
and exists (select count(1)>0 from B where B.商品代码=001)
------解决方案--------------------



select a.* from a inner join b on a.销售单号=b.销售单号
where 商品代码='001'

[解决办法]
这个问题比较怪异

读书人网 >SQL Server

热点推荐