这是报表的数据集,如何做到给@access_date,@access_date2,@protlet_name传递空值时查询所有数据?select b.portlet_name,a.access_date, sum(a.visitcount) sum_visitcount 
from 
tbl_access_log a, tbl_portlet_id_name_mapping b 
where 
a.access_portlet_name=b.portlet_id 
and convert(datetime,a.access_date,105)>=convert(datetime,@access_date,105)  
and convert(datetime,a.access_date,105)<=convert(datetime,@access_date2,105)  
and b.portlet_name like '%'+@portlet_name+'%'
group by b.portlet_name,a.access_date

解决方案 »

  1.   

    本帖最后由 htl258 于 2011-06-02 11:27:00 编辑
      

  2.   

    select b.portlet_name,a.access_date, sum(a.visitcount) sum_visitcount 
    from tbl_access_log a, tbl_portlet_id_name_mapping b 
    where a.access_portlet_name=b.portlet_id 
    and (@access_date IS NULL OR convert(datetime,a.access_date,105)>=convert(datetime,@access_date,105))
    and (@access_date2 is null or convert(datetime,a.access_date,105)<=convert(datetime,@access_date2,105))
    and (@protlet_name is null or b.portlet_name like '%'+@portlet_name+'%')
    group by b.portlet_name,a.access_date
      

  3.   

    select
     b.portlet_name,a.access_date, sum(a.visitcount) sum_visitcount 
    from
     tbl_access_log a, tbl_portlet_id_name_mapping b 
    where
     a.access_portlet_name=b.portlet_id 
    and 
    (@access_date IS NULL OR convert(datetime,a.access_date,105)>=convert(datetime,@access_date,105))
    and
     (@access_date2 is null or convert(datetime,a.access_date,105)<=convert(datetime,@access_date2,105))
    and
     (@protlet_name is null or b.portlet_name like '%'+@portlet_name+'%')
    group by
     b.portlet_name,a.access_date