起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 243|回复: 11

【结贴】工作任务的SQL有问题吧?取出很多重复记录??**

[复制链接]
发表于 2008-11-26 09:51:21 | 显示全部楼层 |阅读模式
我一个任务发给5个人,在每个人的工作任务里面有5条相同的记录,我查看了你们的SQL。然后去数据库对比了数据,是SQL有问题才取成这样的。请修改一下。


SELECT TASK.*, TMS.FSTATE as MESSAGESTATE
  FROM TTASKMESSAGE TMS, TTASK TASK
where TASK.FGUID = TMS.FTASKGUID(+)
   and (((TASK.FSTATE = 'tsStarted') or (TASK.FSTATE = 'tsProcessing') or
       (TASK.FSTATE = 'tsWaiting')) and
       TASK.FGUID in
       (Select FTASKGUID
           from TTASKMESSAGE TMS
          where ((TMS.FRORGURL =
                'ROOT652300000000.OGN652300050000.DPTXTGLY.PTM652300030129.PSM') or
                (TMS.FRORGURL =
                'ROOT652300000000.OGN652300050000.DPTXTGLY.PTM') or
                (TMS.FRORGURL = 'POSITIONXTGLY.PTN') or
                (TMS.FRORGURL = 'ROOT652300000000.OGN652300050000.DPT') or
                (TMS.FRORGURL = 'ROOT652300000000.OGN'))
            and ((TMS.FSTATE = 'tmsSend') or (TMS.FSTATE = 'tmsReceived') or
                (TMS.FSTATE = 'tmsProcessing'))))
见图

gzrw.jpg

12.28 KB, 下载次数: 112

回复

使用道具 举报

发表于 2008-11-26 10:01:08 | 显示全部楼层
贴个完整的图看一下。
另外说一下你做的步骤?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-26 10:08:07 | 显示全部楼层
SQL写成下面这样就正确了。

SELECT TASK.*, TMS.FSTATE as MESSAGESTATE
  FROM TTASKMESSAGE TMS, TTASK TASK
where TASK.FGUID = TMS.FTASKGUID
   and (((TASK.FSTATE = 'tsStarted') or (TASK.FSTATE = 'tsProcessing') or
       (TASK.FSTATE = 'tsWaiting')) and
       TMS.FGUID in
       (Select FGUID
           from TTASKMESSAGE TMS
          where ((TMS.FRORGURL =
                '\ROOT\652300000000.OGN\652300050000.DPT\XTGLY.PTM\652300030129.PSM') or
                (TMS.FRORGURL =
                '\ROOT\652300000000.OGN\652300050000.DPT\XTGLY.PTM') or
                (TMS.FRORGURL = '\POSITION\XTGLY.PTN') or
                (TMS.FRORGURL = '\ROOT\652300000000.OGN\652300050000.DPT') or
                (TMS.FRORGURL = '\ROOT\652300000000.OGN'))
            and ((TMS.FSTATE = 'tmsSend') or (TMS.FSTATE = 'tmsReceived') or
                (TMS.FSTATE = 'tmsProcessing'))))

不应该是TASK.FGUID IN 应该是TMS.FGUID 后面的SELECT 的字段应该是 TTASKMESSAGE.FGUID,这样才能限制选择本人的任务呀。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-26 10:16:47 | 显示全部楼层
对了,像我上面这样写就正确了。
回复 支持 反对

使用道具 举报

发表于 2008-11-26 12:38:23 | 显示全部楼层
1楼的图是哪里来的?
是平台的任务中心的吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-26 13:51:08 | 显示全部楼层
是的
回复 支持 反对

使用道具 举报

发表于 2008-11-26 14:12:42 | 显示全部楼层
另外问一下,你发的这5个任务是给同一个部门的不同人,对吗?
回复 支持 反对

使用道具 举报

发表于 2008-11-26 14:26:32 | 显示全部楼层
如果是任务中心的话,默认是能看到很多任务的,好像是本部门的任务都能看到的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-27 12:58:48 | 显示全部楼层
是发给同一部门的,为什么只限制到部门呢
回复 支持 反对

使用道具 举报

发表于 2008-11-27 13:40:38 | 显示全部楼层
平台中的任务中心一直都是这样的呀。默认就能看到本部门内的任务的。
你通过工作台中的待办任务的更多进去就是个人的(我的任务(待办))
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-29 13:13 , Processed in 0.048407 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表