CREATE PROC xxxx
(@companyname VARCHAR(1000)=null)
AS
BEGIN
SELECT 公司id,gsid,公司名称,SUM(金额) AS 用款总额 
FROM 
(SELECT * FROM a
UNION ALL
SELECT * FROM b) t 
WHERE 审批意见='同意'
AND (CHARINDEX(','+CONVERT(NVARCHAR(20),gsid)+',', ','+@companyname+',')>0 OR @companyname IS NULL)
GROUP BY 公司id,gsid,公司名称 
ORDER BY 公司id
END
GOSELECT CHARINDEX('a','ba')

解决方案 »

  1.   

    --tryCREATE proc xxxx
    (
    @companyname varchar(1000)=null--这里不知道要如何改,改成什么类型的
    )
    as
    begindeclare @sql varchar(8000)
    set @sql='
    select 公司id,gsid,公司名称,sum(金额) as 用款总额 from 
    (
                       select * from a
                       union all
                       select * from b
    ) t 
    where 审批意见=''同意'' 
    'if @companyname is not null
    set @sql=@sql+' and gsid in('+@companyname+') '
    set @sql=@sql+' group by 公司id,gsid,公司名称 order by 公司id 'exec(@sql)
    end
    GO