华软网-中国程序员根据地!

 
您现在的位置: 华软网 >> 数据库 >> DB2 >> 正文

【悬赏】精通SQL的朋友请进【高分悬赏】

  作者:佚名    技巧来源:不详    点击数:    更新时间:2008-11-14

/> 【悬赏】精通SQL的朋友请进【高分悬赏】 [已结帖,结帖人:jjcrazy]   .[华 软 网]
[华 软 网]
编程论坛  楼主 表table t_table结构如下: 本人 对方 标志 单据号 日期 ------------------------------------------------------ AAA BBB 0(出) 0001 2008-01-01 BBB AAA 1(入) 0001 2008-01-01 AAA BBB 0(出) 0002 2008-01-01 BBB AAA 1(入) 0002 2008-01-02 AAA BBB 0(出) 0003 2008-01-03 要求: 同一单据必须在同一天做出入,如果是隔日出入或者只出未入,都是违规,需要监控出来。 现在求一句SQL可以查出隔日出入和只出未入的单据号,也就是说,0001是正常, 0002(日期不再同一天)和0003(只出未入)都是违规,要怎么用一句SQL查出来?     .[华 软 网]
[华 软 网]
编程论坛 1 个网友回答: PS: 只能用SQL语句来实现,不允许用SQL程序来实现。    .[华 软 网]
[华 软 网]
编程论坛 2 个网友回答: select a.*,b.* from (select *       from t_table       where flag = 0) a       left join     (select *       from t_table       where flag = 1) b       on a.单据号 = b.单据号       where a.日期 <> b.日期         or b.单据号 is null 这是得到横表,b为null就是只出未入 b不是null就是日期不再同一天    .[华 软 网]
[华 软 网]
编程论坛 3 个网友回答: select b.* from (select *       from t_table       where 标志 = 0) a       left join     (select *       from t_table       where 标志 = 1) b       on a.单据号 = b.单据号       where a.日期 <> b.日期 union all select a.* from (select *       from t_table       where 标志 = 0) a       left join     (select *       from t_table       where 标志 = 1) b       on a.单据号 = b.单据号       where a.日期 <> b.日期         or b.单据号 is null    .[华 软 网]
[华 软 网]
编程论坛 4 个网友回答: 楼上真猛,给分 


华软网声明:本站内容全部来自网络,如有侵犯您版权请来信指出,本站立即删除。
进入论坛讨论:【悬赏】精通SQL的朋友请进【高分悬赏】
本站热门下载
网站服务
最近更新的技巧