sqlserver 自定义、删除、执行 函数和存储过程
来源:互联网 发布:别人要我电脑mac地址 编辑:程序博客网 时间:2024/05/17 10:40
自定义存储过程:
if (object_id('p_wm_get_dynstore', 'P') is not null) drop proc p_wm_get_dynstoregocreate procedure p_wm_get_dynstore(@stock_id int =0, @useful_date int =0, @i_state int =0, @q_state int =0, @is_batch bit = 0, @product_code varchar(250) ='')-- =============================================-- Author:XXX-- Create date: 2016-02-18-- Description:XXXXXXX-- =============================================asbegindeclare @ifstr varchar(2000) = ''declare @newifstr varchar(2000)declare @pro_id intdeclare @sqlstr varchar(2000)if @stock_id =0 or @stock_id is null RaisError('传入参数错误:stock_id必填',16,1)if @useful_date <> 0 and @useful_date is not null Set @ifstr = @ifstr + ' and DATEDIFF(day, makedate, getdate()) <=' + str(@useful_date) if @i_state <> 0 and @i_state is not null Set @ifstr = @ifstr + 'and v_inventorystate_id=' + str(@i_state) if @q_state <> 0 and @q_state is not null Set @ifstr = @ifstr + ' and v_qualitystate_id=' + str(@q_state)if ISNULL( @product_code,'') != ''Set @pro_id = (SELECT a.id FROM bs_product a WHERE a.default_code=@product_code)if @pro_id <> 0 and @pro_id is not null Set @ifstr = @ifstr + ' and product_id=' + str(@pro_id) if ISNULL( @ifstr,'') != ''Set @newifstr = 'stock_location_id in (SELECT lot_stock_id FROM bs_stock_warehouse WHERE id=' + str(@stock_id) + ')'+ @ifstrelseSet @newifstr = 'stock_location_id in (SELECT lot_stock_id FROM bs_stock_warehouse WHERE id='+ str(@stock_id) + ')'if @is_batch <> 0 and @is_batch is not nullSet @sqlstr = 'select p.name_template,p.default_code,p.specs,u.name,d.qty,d.lockqty,(d.qty-d.lockqty)as useqty,l.name as ''库位'' ,w.name as w_name,b.name as b_name,c.name as c_name from( SELECT SUM(qty) as qty,SUM(lockqty) as lockqty,SUM(useableqty) as useableqty,product_id,stock_location_id,v_qualitystate_id,v_inventorystate_id,uom_id FROM wm_dynstore WHERE '+ @newifstr +' GROUP BY product_id,stock_location_id,v_qualitystate_id,v_inventorystate_id,uom_id )as d left join bs_product p on p.id = d.product_idleft join bs_product_uom u on u.id = d.uom_idleft join bs_stock_location l on l.id = d.stock_location_idleft join bs_stock_warehouse w on w.id = l.stock_warehouse_idleft join bs_publictype_d b on b.id = d.v_inventorystate_idleft join bs_publictype_d c on c.id = d.v_qualitystate_id'elseSet @sqlstr = 'select p.name_template,p.default_code ,p.specs ,u.name ,d.qty ,d.lockqty,(d.qty-d.lockqty) as useqty,l.name as ''库位'' ,w.name as w_name,b.name as b_name,c.name as c_name from( SELECT qty,lockqty,useableqty,product_id,stock_location_id,v_qualitystate_id,v_inventorystate_id FROM wm_dynstore WHERE '+ @newifstr +' )as d left join bs_product p on p.id = d.product_idleft join bs_product_uom u on u.id = d.uom_idleft join bs_stock_location l on l.id = d.stock_location_idleft join bs_stock_warehouse w on w.id = l.stock_warehouse_idleft join bs_publictype_d b on b.id = d.v_inventorystate_idleft join bs_publictype_d c on c.id = d.v_qualitystate_id;'print '123'print @sqlstrendExecute(@sqlstr)goexec p_wm_get_dynstore 5621,0,0,0,1;exec p_wm_get_dynstore 5621,5,0,0,1,'2.40010';
自定义函数:
---------------------------------------查询截止日期的入库数量-----------------------------------if OBJECT_ID('f_wm_get_stockin','if')is not nulldrop function f_wm_get_stockingo-------- =============================================-------- Author:XXX-------- Create date: 2016-03-03-------- Description:XXXXXXXXXXXXXXXXX-------- =============================================create function f_wm_get_stockin(@stock_id int,@company_id int, @begindate varchar(200),@enddate varchar(200),@product_code varchar(200),@stock_state varchar(250), @quality_state varchar(250))returns tableas return (SELECT d.res_company_id,d.stock_warehouse_id,d.product_id,SUM(s.qty) as qty, SUM(s.qty*p.often_switch) as qty_often,SUM(s.qty*d.price_unit) as amount, SUM(s.qty*d.price_unit)/SUM(s.qty) as price_unit,SUM(s.qty*d.price_unit)/SUM(s.qty*p.often_switch) as price_oftenFROM wm_dynstore dLEFT JOIN wm_storemv s ON s.mgin_id = d.idLEFT JOIN bs_product p on p.id = d.product_idWHERE (@company_id <= 0 or d.res_company_id=@company_id) and (@stock_id <= 0 or d.stock_warehouse_id=@stock_id) and (@product_code is null or p.default_code in (@product_code)) and (@stock_state is null or d.v_inventorystate_id in (@stock_state)) and (@quality_state is null or d.v_qualitystate_id in (@quality_state)) AND s.wtime_d >= @begindate AND s.wtime_d <= @enddateGROUP BY d.res_company_id,d.stock_warehouse_id,d.product_id)goselect * from f_wm_get_stockin(8,1,'2015-12-01','2015-12-31','','','');
0 0
- sqlserver 自定义、删除、执行 函数和存储过程
- SqlServer Dev(1) - 存储过程和自定义函数的区别
- SqlServer批量删除表和存储过程
- 删除存储过程和函数
- 自定义存储过程和函数
- 自定义存储过程和函数
- SqlServer触发器、存储过程和函数
- SQLServer 2000中,存储过程和用户自定义函数具体的区别
- SQLServer 2000中,存储过程和用户自定义函数具体的区别??
- Sqlserver定时执行存储过程
- Sqlserver定时执行存储过程
- sqlserver 批量删除存储过程
- sqlserver 批量删除存储过程
- Sqlserver中存储过程,触发器,自定义函数(一)
- Sqlserver中存储过程,触发器,自定义函数(二)
- Sqlserver中存储过程,触发器,自定义函数(三)
- Sqlserver中存储过程,触发器,自定义函数(一)
- Sqlserver中存储过程,触发器,自定义函数:(二)
- nginx的http2.0性能太逆天了,HTTPS网站性能优化
- C语言面试题(1)
- erlang game
- 闭包 转
- C# 多态性
- sqlserver 自定义、删除、执行 函数和存储过程
- 数据库连接学习(二)——Tomcat下使用C3P0配置JNDI数据源
- Activity和Service之间通过handler传递数据
- [Android 性能优化系列]布局篇之通过<include>复用布局
- umeng第三方登陆授权 getPlatformInfo 无法获取 access_token
- 第三方分享的部分准备知识
- android大讲堂——listview详解
- URL中带加号的处理
- Java设计模式——原型模式