select a,b,c .....
其中 a b c 分别都是子查询得到的字段,如果a或者b或者c 其中有一个没有值 那么别的即使有值也显示不出来 请问怎么解决 select s.curtmhrow,s.username,convert(decimal(18,0),s.daymaa) as daymaa, convert(decimal(18,3),f.daymansum/30) as daymansum,   
  convert(decimal(18,3),y.all_val/30) as all_val,s.project_id ,( select p.pjbgmt from  
(select pjbgmt, project_id from sl_pm_project union select pjbgmt, project_id from sl_pm_project_main) p  
where p.project_id='JSXM-11-111' ) as pjbgmt,j.sealadd   
  from (select distinct curtmhrow ,a.username as username, sum(a.days) as daymaa ,project_id from   
  fnb_kaoqin_import a where   
  a.project_id ='JSXM-11-111' group by a.username , curtmhrow,project_id) s   
  left join (select distinct curtmhrow ,sum(dayman) as daymansum from fnb_kaoqin_import f where f.project_id='JSXM-11-111'   
  group by curtmhrow ) f on s.curtmhrow =f.curtmhrow   
  left join   
  (SELECT curtmhrow,(SELECT SUM(dayman) FROM fnb_kaoqin_import as t WHERE   
  t.curtmhrow <= h.curtmhrow and t.project_id='JSXM-11-111') AS all_val   
  FROM fnb_kaoqin_import h where h.project_id='JSXM-11-111' GROUP BY curtmhrow) y   
  on s.curtmhrow=y.curtmhrow left join   
  (select sum(convert(Float,sealadd)) as sealadd,project_id from flow_sl_pm_change GROUP BY project_id) j   
  on s.project_id = j.project_id  ( select p.pjbgmt from  
(select pjbgmt, project_id from sl_pm_project union select pjbgmt, project_id from sl_pm_project_main) p  
where p.project_id='JSXM-11-111' ) as pjbgmt 这个是有值的 但就是不显示

解决方案 »

  1.   

    确定  如果单个查询 后面说的那句 是有值的 有的 project_id  值 是可以查出来所有数据的
      

  2.   

    嵌套在select中的(select)肯定会是这样,并且你这个子句查出来始终是同一条记录吗?没发现与外部关联的条件,如果是多条会报错
      

  3.   

    我的意思是SQL Server,最好是在……^-^
      

  4.   

    在那边发了个没人答就到这边了 嘿嘿  sql语句 是最基本的 差不多的 
      

  5.   

    不知道是不是你想要的
    select x.*,y.pjbgmt from
    (select s.curtmhrow,
           s.username,
           convert(decimal(18, 0), s.daymaa) as daymaa,
           convert(decimal(18, 3), f.daymansum / 30) as daymansum,
           convert(decimal(18, 3), y.all_val / 30) as all_val,
           s.project_id,
           j.sealadd
      from (select distinct curtmhrow,
                            a.username as username,
                            sum(a.days) as daymaa,
                            project_id
              from fnb_kaoqin_import a
             where a.project_id = 'JSXM-11-111'
             group by a.username, curtmhrow, project_id) s
      left join (select distinct curtmhrow, sum(dayman) as daymansum
                   from fnb_kaoqin_import f
                  where f.project_id = 'JSXM-11-111'
                  group by curtmhrow) f on s.curtmhrow = f.curtmhrow
      left join (SELECT curtmhrow,
                        (SELECT SUM(dayman)
                           FROM fnb_kaoqin_import as t
                          WHERE t.curtmhrow <= h.curtmhrow
                            and t.project_id = 'JSXM-11-111') AS all_val
                   FROM fnb_kaoqin_import h
                  where h.project_id = 'JSXM-11-111'
                  GROUP BY curtmhrow) y on s.curtmhrow = y.curtmhrow
      left join (select sum(convert(Float, sealadd)) as sealadd, project_id
                   from flow_sl_pm_change
                  GROUP BY project_id) j on s.project_id = j.project_id) x,
    (select p.pjbgmt from (select pjbgmt, project_id
                      from sl_pm_project
                    union
                    select pjbgmt, project_id from sl_pm_project_main) p
             where p.project_id = 'JSXM-11-111') y
      

  6.   

    select x.*  from
    (select s.curtmhrow,
      s.username,
      convert(decimal(18, 0), s.daymaa) as daymaa,
      convert(decimal(18, 3), f.daymansum / 30) as daymansum,
      convert(decimal(18, 3), y.all_val / 30) as all_val,
      s.project_id,
      j.sealadd
      from (select distinct curtmhrow,
      a.username as username,
      sum(a.days) as daymaa,
      project_id
      from fnb_kaoqin_import a
      where a.project_id = 'JSXM-11-111'
      group by a.username, curtmhrow, project_id) s
      left join (select distinct curtmhrow, sum(dayman) as daymansum
      from fnb_kaoqin_import f
      where f.project_id = 'JSXM-11-111'
      group by curtmhrow) f on s.curtmhrow = f.curtmhrow
      left join (SELECT curtmhrow,
      (SELECT SUM(dayman)
      FROM fnb_kaoqin_import as t
      WHERE t.curtmhrow <= h.curtmhrow
      and t.project_id = 'JSXM-11-111') AS all_val
      FROM fnb_kaoqin_import h
      where h.project_id = 'JSXM-11-111'
      GROUP BY curtmhrow) y on s.curtmhrow = y.curtmhrow
      left join (select sum(convert(Float, sealadd)) as sealadd, project_id
      from flow_sl_pm_change
      GROUP BY project_id) j on s.project_id = j.project_id) x,
    (select p.pjbgmt from (select pjbgmt, project_id
      from sl_pm_project
      union
      select pjbgmt, project_id from sl_pm_project_main) p
      where p.project_id = 'JSXM-11-111')  as pjbgmt这个样子也不行  郁闷  谢谢 yuyu1980