本帖最后由 dan 于 2014-8-12 18:32 编辑
USE [honland]
GO
/****** Object: StoredProcedure [dbo].[SP_Getkhhz] Script Date: 06/24/2014 20:35:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SP_Getkhhz] @Bdate nvarchar(200),@EDate nvarchar(200),@name nvarchar(200),@noname nvarchar(max)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SQL1 NVARCHAR(4000),
@SQL2 NVARCHAR(4000)
CREATE TABLE #khhz
(
name nvarchar(200),
hk numeric(18,2)
)
----开单总额
SET @SQL1='select item_客户,item_开单总额 from tlk_销售开单 where 1=1 ' ;
IF (@Bdate <>'' and @Edate <>'')
BEGIN
SET @SQL1=@SQL1 + ' and substring( convert(varchar(10),item_开单日期,120),1,10)>=''' + @Bdate + ''' and substring( convert(varchar(10),item_开单日期,120),1,10)<=''' + @Edate + ''' '
END
IF @name <> ''
BEGIN
SET @SQL1=@SQL1+' and item_客户 like ''%' + @name + '%''';
END
IF @noname <> ''
BEGIN
SET @SQL1=@SQL1+' and item_客户 not in ( select * from dbo.f_split(''' + @noname + ''','';''))';
END
print @sql1
----退货总额
SET @SQL2='select item_客户,-item_退货总额 from tlk_销售退货 where 1=1 ' ;
IF (@Bdate <>'' and @Edate <>'')
BEGIN
SET @SQL2=@SQL2 + ' and substring( convert(varchar(10),item_退货日期,120),1,10)>=''' + @Bdate+ ''' and substring( convert(varchar(10),item_退货日期,120),1,10)<=''' + @Edate + ''' '
END
IF @name <> ''
BEGIN
SET @SQL2=@SQL2+' and item_客户 like ''%'+@name+'%''';
END
IF @noname <> ''
BEGIN
SET @SQL2=@SQL2+' and item_客户 not in ( select * from dbo.f_split(''' + @noname + ''','';''))';
END
print @sql2
SET @SQL1='insert into #khhz ' + @SQL1
SET @SQL2='insert into #khhz ' + @SQL2
EXEC (@SQL1)
EXEC (@SQL2)
SELECT top 10000 name as item_客户名称,Sum(hk) AS item_货款
FROM #khhz
GROUP BY name
ORDER BY name
END
//视图过滤
var startday=getItemValueAsString("日期始");
var endday=getItemValueAsString("日期终");
var name=getItemValueAsString("客户名称");
var glkh=getItemValueAsString("过滤客户");
if(startday==""){
startday=" ";
}
if(endday==""){
endday=" ";
}
if(name==""){
name=" ";
}
if(glkh==""){
glkh=" ";
}
var rtn="exec SP_Getkhhz '"+startday+ "','" +endday+"','" +name+"','" +glkh+"'";
println(rtn);
rtn; |