日期:2014-05-17  浏览次数:20357 次

一个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)
------解决方案--------------------