SELECT count( * ) 
FROM ((SELECT tTask.Tas_ID FROM (
tTask
JOIN (SELECT Usr_UsrID
FROM tUser
WHERE Usr_UsrID = 'seeland' OR Usr_Manager = 'seeland'
) AS c ON tTask.Tas_User = c.Usr_UsrID
)
WHERE 1 = 1 AND Tas_flagdel <> 'F' AND Tas_Templet <> 'Y' AND Tas_NO = 'KY-FOR-0405,B/1'
GROUP BY tTask.Tas_ID
)
UNION (SELECT tTask.Tas_ID 
FROM tTask
JOIN tWorkFlow ON find_in_set( 'seeland', tWorkFlow.Wkf_Principal ) > 0 AND tTask.Tas_ID = tWorkFlow.Wkf_TaskID
WHERE 1 = 1 AND Tas_flagdel <> 'F' AND Tas_Templet <> 'Y' AND Tas_NO = 'KY-FOR-0405,B/1'
GROUP BY tTask.Tas_ID
)
UNION (SELECT tTask.Tas_ID FROM tTask
WHERE tTask.Tas_ID <> 0 AND Tas_flagdel <> 'F' AND Tas_Templet <> 'Y' AND Tas_NO = 'KY-FOR-0405,B/1'
GROUP BY tTask.Tas_ID
)
) AS aaa 
这样求记录总数报错,请教各位,要求和应该怎么写

解决方案 »

  1.   

    你可以建立一个VIEW来进行查询,请见:
    http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39192444,00.htm
      

  2.   

    将联合的第一个表改为试试
    (SELECT tTask.Tas_ID FROM 
    tTask JOIN tUser ON tTask.Tas_User = tUser.Usr_UsrID 
    WHERE (tUser.Usr_UsrID = 'seeland' OR tUser.Usr_Manager = 'seeland') and 
     1 = 1 AND Tas_flagdel <> 'F' AND Tas_Templet <> 'Y' AND Tas_NO = 'KY-FOR-0405,B/1'
    GROUP BY tTask.Tas_ID)