select id ,c.ENDDATE,c.ROOTPID,c.TASKNAME
from tbs.tbs_fun_apprc c
where '990099' = c.ROOTPID group by TASKNAME order by C.ENDDATE ;
id , ENDDATE, ROOTPID, TASKNAME,
7012 2018-02-01 10:55:01 990099 法务
7013 2018-02-01 10:55:10 990099 风管
7014 2018-02-01 10:55:34 990099 出纳
7015 2018-02-01 10:55:52 990099 支付
7033 2018-02-01 13:09:09 990099 财务
7034 2018-02-01 13:09:17 990099 风管
7035 2018-02-01 13:09:24 990099 分管
select id ,c.ENDDATE,cc.ENDDATE ,c.ROOTPID,cc.ROOTPID,c.TASKNAME,cc.TASKNAME
from tbs.tbs_fun_apprc c
INNER JOIN
(select ENDDATE,ROOTPID,TASKNAME from tbs.tbs_fun_apprc group by TASKNAME ) cc on cc.ENDDATE = c.ENDDATE
where '990099' = c.ROOTPID order by C.ENDDATE;
id , ENDDATE, ROOTPID, TASKNAME,如果使用inner join 后 理论上应该有相同的结果,但是却查不到数据,也没有报错,这是为什么
from tbs.tbs_fun_apprc c
where '990099' = c.ROOTPID group by TASKNAME order by C.ENDDATE ;
id , ENDDATE, ROOTPID, TASKNAME,
7012 2018-02-01 10:55:01 990099 法务
7013 2018-02-01 10:55:10 990099 风管
7014 2018-02-01 10:55:34 990099 出纳
7015 2018-02-01 10:55:52 990099 支付
7033 2018-02-01 13:09:09 990099 财务
7034 2018-02-01 13:09:17 990099 风管
7035 2018-02-01 13:09:24 990099 分管
select id ,c.ENDDATE,cc.ENDDATE ,c.ROOTPID,cc.ROOTPID,c.TASKNAME,cc.TASKNAME
from tbs.tbs_fun_apprc c
INNER JOIN
(select ENDDATE,ROOTPID,TASKNAME from tbs.tbs_fun_apprc group by TASKNAME ) cc on cc.ENDDATE = c.ENDDATE
where '990099' = c.ROOTPID order by C.ENDDATE;
id , ENDDATE, ROOTPID, TASKNAME,如果使用inner join 后 理论上应该有相同的结果,但是却查不到数据,也没有报错,这是为什么
解决方案 »
- sqlserver 2008 R2 查询条件为分区列的问题
- SQL一个小题请高手帮忙解释一下谢谢
- sql作业调度丢失
- sql server 老是出问题,怎么回事呢?
- 任意关键词组合的OR查询,求帮忙!谢谢!
- SQL里怎么分解字符串
- 实在没法子了,小弟重装了Sqlserver7.0后,怎么也恢复不了master数据库了.
- 请问大侠,如何在企业管理器中把用word编辑的文档、表格存入text字段,并如实显示出来。
- xyz00134,xyz00135...我有oracle,帮我转化为MS的好吗?
- 在asp中如何调用sql server中的存蓄过程?
- 咨询死锁问题(deadlock)
- 这样的需求,合不合理?
from tbs.tbs_fun_apprc c
where '990099' = c.ROOTPID group by TASKNAME order by C.ENDDATE ;
不进行统计,然后用GROUP BY TASKNAME 没意义
如果真是 MySQL, 那么很容易解释,你的第一个查询,是明确查 '990099' = c.ROOTPID 的数据
而第2个查询中的子查询,是所有数据,所以无法保障子查询返回的 ENDDATE 是匹配外层查询 '990099' = c.ROOTPID 对应记录的 ENDDATE
Group By 一个字段,前边查3个字段,其中两个还不是聚合函数,建议你去my sql板块去,这种写法,sql server会报错、