--try
select FLOWID,DOCCAPTION,SENDDATE,LDPS 
from (SELECT FLOWID, DOCCAPTION, SENDDATE FROM TAB1 WHERE UID='323') A,
(SELECT 
 CASE

  WHEN COUNT(*) >0 THEN '有'
  WHEN COUNT(*) =0 THEN'没有'
  WHEN COUNT(*) <0 THEN '出错'
 END  AS LDPS 
 FROM TAB2 WHERE DOC_ID='' ) B
where A.DOC_ID=FLOWID

解决方案 »

  1.   

    SELECT 
        a.FLOWID, 
        a.DOCCAPTION, 
        a.SENDDATE,
        LDPS = (CASE WHEN b.LDPS > 0 THEN '有' WHEN  b.LDPS > 0 THEN '没有' ELSE '出错' END)
    FROM 
        TAB1 a
    LEFT JOIN
        (SELECT DOC_ID,LDPS=COUNT(*) FROM TAB2 WHERE b.DOC_ID='') b
    ON
        a.FLOWID = b.DOC_ID
    WHERE 
        a.UID='323'
      

  2.   

    楼上的语句,应该是错误的。FLOWID是TAB1 的一个字段,DOC_ID是TAB2的一个字段的。
      

  3.   

    --只有两种情况“有”或“没有”,没有“出错”的情况!
    select a.FLOWID,a.DOCCAPTION,a.SENDDATE,LDPS=max(case when b.Flowid is null then '没有' else '有' end)
    from TAB1 a left join TAB2 b on a.DOC_ID=b.FLOWID
    group by FLOWID,DOCCAPTION,SENDDATE
      

  4.   

    楼主,试试这个。
    SELECT A.FLOWID,A.DOCCAPTION,A.SENDDATE,B.LDPS FROM 
    (SELECT FLOWID, DOCCAPTION, SENDDATE FROM TAB1 WHERE UID='323' )A
    INNER JOIN
    (SELECT DOC_ID,
     CASE

      WHEN COUNT(*) >0 THEN '有'
      WHEN COUNT(*) =0 THEN'没有'
      WHEN COUNT(*) <0 THEN '出错'
     END  AS LDPS 
     FROM TAB2 WHERE DOC_ID=''
    ) B
    On A.FLOWID=B.DOC_ID
      

  5.   

    我上面写错了。
    /* FLOWID 与 DOC_ID 相同 !!!!!!!!!!*/
    SELECT 
     CASE

      WHEN COUNT(*) >0 THEN '有'
      WHEN COUNT(*) =0 THEN'没有'
      WHEN COUNT(*) <0 THEN '出错'
     END  AS LDPS 
     FROM TAB2 WHERE ROLE='开始' //应该是这样, 楼上给的SQL语句我运行时提示我 DOC_ID 列名无效。 而且我把WHERE去掉后,再列中并没有看见列名LDPS
      

  6.   

    --晕,这也被你发现了!呵呵。
    select FLOWID,DOCCAPTION,SENDDATE,LDPS 
    from (SELECT FLOWID, DOCCAPTION, SENDDATE FROM TAB1 WHERE UID='323') A,
    (SELECT 
     CASE

      WHEN COUNT(*) >0 THEN '有'
      WHEN COUNT(*) =0 THEN'没有'
      WHEN COUNT(*) <0 THEN '出错'
     END  AS LDPS 
     FROM TAB2 WHERE DOC_ID='' ) B
    where A.DOC_ID=B.FLOWID --少写了一个表别明!:)
      

  7.   

    大家好像忽略了 
    SELECT DOC_ID,
     CASE

      WHEN COUNT(*) >0 THEN '有'
      WHEN COUNT(*) =0 THEN'没有'
     END  AS LDPS 
     FROM TAB2 WHERE DOC_ID='' 这句中的 DOC_ID='' 
    不一定是内联或者外联什么的我只是说他们有关系 FLOWID 和 DOC_ID 是一个。
    我是想根据条件从第一个SQL语句中取出FLOWID,第二个语句的WHERE DOC_ID= 就是第一个SQL语句取出的FLWOID .
      

  8.   

    zlp321002(职业-->烧人民币) 运行后提示 DOC_ID列名不存在。
     paoluo(一天到晚游泳的鱼)   运行后提示在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。
     libin_ftsafe(子陌红尘) 与  paoluo(一天到晚游泳的鱼) 错误基本相同。很感谢大家帮忙,可能是我表述不清的问题吧? 希望大家能继续帮忙。
      

  9.   

    哦,不好意思,没考虑到这个问题。那试试这个SELECT A.FLOWID,A.DOCCAPTION,A.SENDDATE,B.LDPS FROM 
    (SELECT FLOWID, DOCCAPTION, SENDDATE FROM TAB1 WHERE UID='323' )A
    INNER JOIN
    (SELECT DOC_ID,
     CASE

      WHEN COUNT(*) >0 THEN '有'
      WHEN COUNT(*) =0 THEN'没有'
     END  AS LDPS 
     FROM TAB2 WHERE DOC_ID=''
     Group By DOC_ID
    ) B
    On A.FLOWID=B.DOC_ID