u_order_ml表中 relcode ,status_mode ,wrkGrpid ,opdate ,saletaskcode ,mtrlid 查询这6个列名数据同时相同的数据。6个都要相同,少一个都不行。现不知道为何查询出来的数据都只是部分相同,另外还想请教下如果加入其它表交叉查询行不行
inner join u_sc_wkp on u_Order_ml.wrkGrpid = u_sc_wkp.wrkGrpid
LEFT OUTER JOIN u_mtrldef on u_order_ml.mtrlid=u_mtrldef.mtrlid耐心等待高手指教SQL重复查询交叉查询
inner join u_sc_wkp on u_Order_ml.wrkGrpid = u_sc_wkp.wrkGrpid
LEFT OUTER JOIN u_mtrldef on u_order_ml.mtrlid=u_mtrldef.mtrlid耐心等待高手指教SQL重复查询交叉查询
select relcode ,status_mode ,wrkGrpid ,opdate ,saletaskcode ,mtrlid,count(1) from u_order_ml
group by relcode ,status_mode ,wrkGrpid ,opdate ,saletaskcode ,mtrlid下面那个sql可能原因 ,inner join 关联不上
比如:
inner join u_sc_wkp on u_Order_ml.wrkGrpid = u_sc_wkp.wrkGrpid
and u_Order_ml.relcode = u_sc_wkp.relcode
and ....可以对于任意多个表进行交叉查询,你只要有表格之间的关系条件就行。
2:你认为的相同包含因为显示的内容相同,但是可能存在空格select relcode ,status_mode ,wrkGrpid ,opdate ,saletaskcode ,mtrlid,count(1) from u_order_ml
group by relcode ,status_mode ,wrkGrpid ,opdate ,saletaskcode ,mtrlid
这个确实可以试一试,看看到底是什么原因导致
如果是本表u_Order_ml中6个列都相同。你join on怎样写 怎样6个列全部加上。另外数据只有主表u_Order_ml有,其他2个表只是为了显示ID对应数据而写的。
group by relcode ,status_mode ,wrkGrpid ,opdate ,saletaskcode ,mtrlid
having count(1) > 1
count(1)=1 表示relcode ,status_mode ,wrkGrpid ,opdate ,saletaskcode ,mtrlid 有部分相同或都不同,count(1)>1 表示 relcode ,status_mode ,wrkGrpid ,opdate ,saletaskcode ,mtrlid 都想同
很早我就试过了这个了,但是不知道不行,理论上来说是可以的,不知道是不是因为列里面有一个万恶的datatime类型,有datatime巨麻烦的.
我附图给各位大神看看
group by relcode ,status_mode ,wrkGrpid ,CONVERT(varchar(100), opdate, 120),saletaskcode ,mtrlid
having count(1) > 1或者
CONVERT(varchar(100), opdate, 23) 替换
CONVERT(varchar(100), opdate, 120) 表示,日期格式化年月日,不包括时分秒