zoukankan      html  css  js  c++  java
  • sql多条件查询procedure

    create   proc pr_test
    @IN_STORE_CODE varchar(
    11),
    @in_date_start varchar(
    8),
    @in_date_end varchar(
    8),
    @state_flag 
    char(1),
    @WH_CODE varchar(
    3),
    @RECIPT_NO 
    char(11),
    @SUP_NAME varchar(
    60),
    @MATERIAL_CODE varchar(
    12),
    @M_NAME varchar(
    30)
    as
    declare @sql varchar(
    1000)
    declare @sqlwhere varchar(
    1000)
    set @sql='SELECT distinct b.IN_STORE_CODE,f.ZB_NAME,'
    set @sql=@sql+'IN_DATE=left(b.in_date,4)+''-''+substring(b.in_date,5,2)+''-''+right(b.in_date,2),'
    set @sql=@sql+'b.RECIPT_NO,b.CG_ORDER_MANAGER_NUM,g.wh_name,'
    set @sql=@sql+'in_kind = case in_kind when ''1'' then '''' else  '''' end,'
    set @sql=@sql+'h.[NAME],c.MATERIAL_CODE,d.M_NAME,d.MODEL,d.UNIT,c.PRAV_IN_QUAN,c.PRICE_PRV,c.MONEY_PR,e.SUP_NAME,b.STATE_FLAG,'
    set @sql=@sql+'b.TRAN_TYPE,b.TRAN_COMP_CODE,BUY_PERSON_CODE=i.fullname,b.REMARK  '
    set @sql=@sql+'FROM GS_RECIPT_MAIN a RIGHT JOIN GF_IN_MAIN b ON a.RECIPT_NO = b.RECIPT_NO '
    set @sql=@sql+'left outer join gs_sy_jyxz f ON b.IN_TYPE=F.ZB_CODE '
    set @sql=@sql+'left outer join gf_warehouse  g ON b.WH_CODE=g.WH_CODE '
    set @sql=@sql+'left outer join (select code,[name] from BO_SY_CODE WHERE CODE_TYPE=''21'') h ON b.DEPT_CODE=h.code '
    set @sql=@sql+'left outer join users i ON b.BUY_PERSON_CODE=i.userid '
    set @sql=@sql+'INNER JOIN GF_IN_SUB c ON b.IN_STORE_CODE = c.IN_STORE_CODE '
    set @sql=@sql+'left outer join GS_MATE d ON c.MATERIAL_CODE = d.MATERIAL_CODE '
    set @sql=@sql+'left outer join GS_SUPPLIER e ON e.SUP_CODE=b.SUP_CODE  '

    if @in_store_code<>''
    begin 
      
    set @sqlwhere='where b.in_store_code='+''''+@in_store_code+''''
    end

    if @in_date_start<>''
    begin 
      
    if @sqlwhere<>''
         
    set @sqlwhere=@sqlwhere+' and in_date>='+''''+@in_date_start+''''
      
    else
         
    set @sqlwhere='where in_date>='+''''+@in_date_start+''''
    end 

    if @in_date_end<>''
    begin 
      
    if @sqlwhere<>''
         
    set @sqlwhere=@sqlwhere+' and in_date<='+''''+@in_date_end+''''
      
    else
         
    set @sqlwhere='where in_date<='+''''+@in_date_end+''''
    end 

    if @state_flag<>''
    begin 
      
    if @sqlwhere<>''
         
    set @sqlwhere=@sqlwhere+' and state_flag='+''''+@state_flag+''''
      
    else
         
    set @sqlwhere='where state_flag='+''''+@state_flag+''''
    end 

    if @WH_CODE<>''
    begin 
      
    if @sqlwhere<>''
         
    set @sqlwhere=@sqlwhere+' and b.WH_CODE='+''''+@WH_CODE+''''
      
    else
         
    set @sqlwhere='where b.WH_CODE='+''''+@WH_CODE+''''
    end 

    if @RECIPT_NO<>''
    begin 
      
    if @sqlwhere<>''
         
    set @sqlwhere=@sqlwhere+' and b.RECIPT_NO='+''''+@RECIPT_NO+''''
      
    else
         
    set @sqlwhere='where b.RECIPT_NO='+''''+@RECIPT_NO+''''
    end 

    if @SUP_NAME<>''
    begin 
      
    if @sqlwhere<>''
         
    set @sqlwhere=@sqlwhere+' and e.SUP_NAME like ''%'+@SUP_NAME+'%'''
      
    else
         
    set @sqlwhere='where e.SUP_NAME like ''%'+@SUP_NAME+'%'''
    end 

    if @MATERIAL_CODE<>''
    begin 
      
    if @sqlwhere<>''
         
    set @sqlwhere=@sqlwhere+' and c.MATERIAL_CODE='+''''+@MATERIAL_CODE+''''
      
    else
         
    set @sqlwhere='where c.MATERIAL_CODE='+''''+@MATERIAL_CODE+''''
    end 

    if @M_NAME<>''
    begin 
      
    if @sqlwhere<>''
         
    set @sqlwhere=@sqlwhere+' and d.M_NAME like ''%'+@M_NAME+'%'''
      
    else
         
    set @sqlwhere='where d.M_NAME like ''%'+@M_NAME+'%'''
    end

    set @sql=@sql+@sqlwhere
    exec (@sql)
  • 相关阅读:
    js全选,全不选,反选练习
    linux查看系统的一些命令,留着用
    JAVA中native方法
    应该被记住的 8 位 Java 人物
    iframe里面的iframe无法左右对齐的解决方法
    sql语句,查找合并后的结果
    地址路径过深时的处理方式
    惠普中国CEO孙振耀退休感言
    js获得readOnly属性
    直接加载错误页面void com.opensymphony.xwork2.ActionSupport.addActionError(String anErrorMessage)
  • 原文地址:https://www.cnblogs.com/perfect/p/1207461.html
Copyright © 2011-2022 走看看