if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_update_logist_01]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[sp_update_logist_01]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE procedure sp_update_logist_01
/*------------ parameters ---------------*/
@scr_code_ph nvarchar(08)
,@scr_date datetime
,@scr_xwros nvarchar(2)
,@scr_n_seira nvarchar(2)
,@scr_parast nvarchar(2)
,@scr_parast_no decimal(8,0)
as
/*---------------------------------------*/
declare @w_katig_log nvarchar(2)
declare @w_kwdkin nvarchar(2)
declare @w_k_pel nvarchar(2)
declare @w_k_eidos nvarchar(3)
declare @w_t_fpa nvarchar(1)
declare @w_pliromi nvarchar(2)
declare @w_synt decimal(18,5)
declare @w_axia_xr decimal(18,2)
declare @w_axia_pis decimal(18,2)
declare @w_parast_akir nvarchar(2)
/*--------------------------------------*/
create table #tbl_syndesh_01
(
tmp_ma1_typos int
,tmp_account_code nvarchar(12)
,tmp_xp int
,tmp_axia_xr decimal(18,2)
,tmp_axia_pis decimal(18,2)
,tmp_aa int
,tmp_fpa nvarchar(02)
,tmp_kwdkin nvarchar(02)
)
/* eyresh an to parastatiko einai akyrwtiko */
set @w_parast_akir =
(
select kp1_parast_akir from fkpel1
where
kp1_code_ph = @scr_code_ph and
kp1_date_wrk = @scr_date and
kp1_xwros = @scr_xwros and
kp1_n_seira = @scr_n_seira and
kp1_parast = @scr_parast and
kp1_parast_no = @scr_parast_no)
if @w_parast_akir = ''
begin
set @w_katig_log = (select pt1_k_e_log from fparast_timol where pt1_key = @scr_parast)
end
else
begin
set @w_katig_log = (select pt1_k_e_log from fparast_timol where pt1_key = @w_parast_akir)
end
if @w_katig_log = ''
begin
return
end
set @w_kwdkin = (select kel_plg_code from fkatig_en_log where kel_key = @w_katig_log)
if not exists (select klg_key from fkin_logist where klg_key=@w_kwdkin)
begin
return
end
set @w_k_pel = (select mp1_kategory from fmpel1 where mp1_code_ph = @scr_code_ph)
set @w_t_fpa =
(
select kp1_t_fpa from fkpel1
where
kp1_code_ph = @scr_code_ph and
kp1_date_wrk = @scr_date and
kp1_xwros = @scr_xwros and
kp1_n_seira = @scr_n_seira and
kp1_parast = @scr_parast and
kp1_parast_no = @scr_parast_no
)
set @w_pliromi =
(
select kp1_pliromi from fkpel1
where
kp1_code_ph = @scr_code_ph and
kp1_date_wrk = @scr_date and
kp1_xwros = @scr_xwros and
kp1_n_seira = @scr_n_seira and
kp1_parast = @scr_parast and
kp1_parast_no = @scr_parast_no
)
set @w_axia_xr =
(
select kp1_axia_xr from fkpel1
where
kp1_code_ph = @scr_code_ph and
kp1_date_wrk = @scr_date and
kp1_xwros = @scr_xwros and
kp1_n_seira = @scr_n_seira and
kp1_parast = @scr_parast and
kp1_parast_no = @scr_parast_no
)
set @w_axia_pis =
(
select kp1_axia_pis from fkpel1
where
kp1_code_ph = @scr_code_ph and
kp1_date_wrk = @scr_date and
kp1_xwros = @scr_xwros and
kp1_n_seira = @scr_n_seira and
kp1_parast = @scr_parast and
kp1_parast_no = @scr_parast_no
)
if @w_axia_xr = 0 and @w_axia_pis = 0
begin
return
end
set @w_synt =
(abs(@w_axia_xr) + abs(@w_axia_pis)) / (@w_axia_xr+@w_axia_pis)
insert into #tbl_syndesh_01
select
1 as tmp_typos
,ac2_k_log as tmp_account_code
,ac2_xr_pi as tmp_xp
,(select case
when ac2_xr_pi in (1,3) then ka1_axia * @w_synt
else 0
end) as tmp_axia_xr
,(select case
when ac2_xr_pi in (2,4) then ka1_axia * @w_synt
else 0
end) as tmp_axia_pis
,ka1_aa as tmp_aa
,ac2_fpa as tmp_fpa
,@w_kwdkin as tmp_kwdkin
from fkapo1, facc02, fmapo1
where
ka1_code_ph = @scr_code_ph and
ka1_date_wrk = @scr_date and
ka1_xwros = @scr_xwros and
ka1_n_seira = @scr_n_seira and
ka1_parast = @scr_parast and
ka1_parast_no = @scr_parast_no and
ac2_seira = @scr_n_seira and
ac2_l_parast = @w_katig_log and
ac2_fpa = ka1_ac2_fpa and
ka1_code_apo = ma1_code_apo and
ac2_k_eidos = ma1_kathg and
ac2_k_pel = @w_k_pel and
ac2_axia = 1
union
select
3 as tmp_typos
,ac2_k_log as tmp_account_code
,ac2_xr_pi as tmp_xp
,(select case
when ac2_xr_pi in (1,3) then ka1_ax_fpa * @w_synt
else 0
end) as tmp_axia_xr
,(select case
when ac2_xr_pi in (2, 4) then ka1_ax_fpa * @w_synt
else 0
end) as tmp_axia_pis
,ka1_aa as tmp_aa
,ac2_fpa as tmp_fpa
,@w_kwdkin as tmp_kwdkin
from fkapo1, facc02, fmapo1
where
ka1_code_ph = @scr_code_ph and
ka1_date_wrk = @scr_date and
ka1_xwros = @scr_xwros and
ka1_n_seira = @scr_n_seira and
ka1_parast = @scr_parast and
ka1_parast_no = @scr_parast_no and
ac2_seira = @scr_n_seira and
ac2_l_parast = @w_katig_log and
ac2_fpa = ka1_ac2_fpa and
ka1_code_apo = ma1_code_apo and
ac2_k_eidos = ma1_kathg and
ac2_k_pel = @w_k_pel and
ac2_axia = 3
union
select
4 as tmp_typos
,ac2_k_log as tmp_account_code
,ac2_xr_pi as tmp_xp
,(select case
when ac2_xr_pi in (1 ,3) then ka1_axia * @w_synt
else 0
end) as tmp_axia_xr
,(select case
when ac2_xr_pi in (2 ,4) then ka1_axia * @w_synt
else 0
end) as tmp_axia_pis
,ka1_aa as tmp_aa
,ac2_fpa as tmp_fpa
,@w_kwdkin as tmp_kwdkin
from fkapo1, facc02, fmapo1, fpway
where
ka1_code_ph = @scr_code_ph and
ka1_date_wrk = @scr_date and
ka1_xwros = @scr_xwros and
ka1_n_seira = @scr_n_seira and
ka1_parast = @scr_parast and
ka1_parast_no = @scr_parast_no and
ac2_seira = @scr_n_seira and
ac2_l_parast = @w_katig_log and
ac2_fpa = ka1_ac2_fpa and
ka1_code_apo = ma1_code_apo and
ac2_k_eidos = ma1_kathg and
ac2_k_pel = @w_k_pel and
ac2_axia = 4 and
pway_key = @w_pliromi and
pway_typ_char='*'
union
select
4 as tmp_typos
,ac2_k_log as tmp_account_code
,ac2_xr_pi as tmp_xp
,(select case
when ac2_xr_pi in (1, 3) then ka1_ax_fpa * @w_synt
else 0
end) as tmp_axia_xr
,(select case
when ac2_xr_pi in (2,4) then ka1_ax_fpa * @w_synt
else 0
end) as tmp_axia_pis
,ka1_aa as tmp_aa
,ac2_fpa as tmp_fpa
,@w_kwdkin as tmp_kwdkin
from fkapo1, facc02, fmapo1 , fpway
where
ka1_code_ph = @scr_code_ph and
ka1_date_wrk = @scr_date and
ka1_xwros = @scr_xwros and
ka1_n_seira = @scr_n_seira and
ka1_parast = @scr_parast and
ka1_parast_no = @scr_parast_no and
ac2_seira = @scr_n_seira and
ac2_l_parast = @w_katig_log and
ac2_fpa = ka1_ac2_fpa and
ka1_code_apo = ma1_code_apo and
ac2_k_eidos = ma1_kathg and
ac2_k_pel = @w_k_pel and
ac2_axia = 4 and
pway_key = @w_pliromi and
pway_typ_char='*'
/*-------- results *---------*/
select distinct
tmp_kwdkin as lk1_kwdkin,
tmp_account_code as lk1_account_code,
tmp_xp as lk1_xp,
sum(tmp_axia_xr) as lk1_axia_xr,
sum(tmp_axia_pis) as lk1_axia_pis
from #tbl_syndesh_01
group by tmp_kwdkin, tmp_account_code, tmp_xp
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
by: sandeep_patelPosted on 2009-04-15 at 11:27:26ID: 24151068
you need to have resultset and out parameter from stored procedure