日期:2014-05-20  浏览次数:20749 次

在线询问一条sql语句的写法
我这有两张表 
order——>订单总表  保存着所有的订单信息。
iczhifu——>IC储值卡支付的订单信息。
数据库是sqlserver
两张表由字段order_id来关联,order_id在order表中是主键,在iczhifu不是主键。
订单有现金与IC储值卡两种支付方式,现金消费的订单不保存到iczhifu表中。
因为店里大家都能进数据库操作,现在出现了order里出现以IC卡消费的订单却在iczhifu表中没有数据,也查不到是谁操作了,所以想把这些问题数据都找出来。
请问大神们这个sql要怎么写。
sql

------解决方案--------------------

SELECT * FROM order A WHERE NOT EXISTS (SELECT 1 FROM iczhifu B WHERE A.ORDER_ID = B.ORDER_ID)

------解决方案--------------------
左关联查null

select a.* from order a left join iczhifu b on b.order_id=a.order_id where b.order_id is null and a.order_type='IC卡支付';

------解决方案--------------------
Select *
From 订单总表
Where 消费类型 = "IC卡" 
    And 订单ID Not In (
         Select 订单ID 
         From IC储值卡支付的订单信息
    )

------解决方案--------------------
非IC消费的数据,你怎么过滤掉?表结构是怎样的?
还有,按照你这个结构的话,一个order是可以分几次ic消费或者其他消费的,比如一个50块的order可以分5次都刷10块,所以1楼那个未必对