CREATE procedure ni_contract_export_find
@start_date datetime , --开始日期
@end_date datetime , --截至日期
@export_type int, --查询类型 1 = 出口 2 = 转厂
@customer_id int, --客户ID 如果为空 = 0
@export_order varchar(100) --出口单号 可为空
as
begin
declare @v_conditions varchar(8000)
declare @v_form varchar(100)
if ( @export_type = 1 )
begin
set @v_form = 'ni_contract_export_find_vd'
end
else
set @v_form = 'ni_contract_export_find_vt'
if ((@customer_id <>0) and (isnull(@export_order,0) = 0))
begin set @v_conditions = 'not exists (select ''x'' from ni_contract_export y
where y.leave_number = '+@v_form+'.leave_num
and y.leave_seq_no = '+@v_form+'.seq_no)
and exists
( select ''x''
from oe_order_headers_all a
where '+@v_form+'.order_number = a.order_number
and a.sold_to_org_id = @customer_id )
and convert(datetime,'+@v_form+'.creation_date,111)>= convert(datetime,@start_date,111)
and convert(datetime,'+@v_form+'.creation_date,111)<= convert(datetime,@end_date,111)
order by leave_num, seq_no '
end
if ((@customer_id <>0) and (isnull(@export_order,0) <> 0))
begin set @v_conditions = ' not exists
(select ''x''
from ni_contract_export y
where y.leave_number = '+@v_form+'.leave_num
and y.leave_seq_no = '+@v_form+'.seq_no)
and exists
(select ''x''
from oe_order_headers_all a
where '+@v_form+'.order_number = a.order_number
and a.sold_to_org_id = @customer_id)
and '+@v_form+'.leave_num = @export_order
and convert(datetime,'+@v_form+'.creation_date,111)>= convert(datetime,@start_date,111)
and convert(datetime,'+@v_form+'.creation_date,111)<= convert(datetime,@end_date,111)
order by leave_num, seq_no '
end
if ((@customer_id =0) and (isnull(@export_order,0) <> 0))
begin set @v_conditions =' not exists
(select ''x''
from ni_contract_export y
where y.leave_number = '+@v_form+'.leave_num
and y.leave_seq_no = '+@v_form+'.seq_no)
and '+@v_form+'.leave_num = @export_order
and convert(datetime,'+@v_form+'.creation_date,111)>= convert(datetime,@start_date,111)
and convert(datetime,'+@v_form+'.creation_date,111)<= convert(datetime,@end_date,111)
order by leave_num, seq_no '
end
else
set @v_conditions = ' not exists
(select ''x''
from ni_contract_export y
where y.leave_number = '+@v_form+'.leave_num
and y.leave_seq_no = '+@v_form+'.seq_no)
and convert(datetime,'+@v_form+'.creation_date,111)>= convert(datetime,@start_date,111)
and convert(datetime,'+@v_form+'.creation_date,111)<= convert(datetime,@end_date,111)
order by leave_num, seq_no'
declare @sql varchar(500)
set @sql =N'select leave_num,
seq_no,
详细解决方案
请帮忙见见这个过程
热度:59 发布时间:2016-04-24 10:28:00.0
相关解决方案