Re: Can somebody explain this strange sql statement
Date: Mon, 18 Jul 2011 17:35:33 +0200
Message-ID: <j01jrs$181$1_at_dont-email.me>
"Walt" <walt_askier_at_yahoo.com> skrev i meddelandet
news:RhXUp.108347$GN5.67916_at_en-nntp-14.dc1.easynews.com...
> On 7/18/2011 4:56 AM, Tony Johansson wrote:
>> Hello!
>>
>> It's a webbsite using C# and ado.net to access a oracle database.
>> Below is just the beginning of the sql select statement that is used and
>> here you
>> can see form_slag and I wonder
>> how this is possible. This form_slag looks like a variable.
>> If I look at this sql select statement just before dataadapter.fill is
>> executed I see this form_slag just as it is in the select statement
>> below.
>> What seems very strange to me is where is the actual value for this
>> form_slag is given.
>> This form_slag must have a value before the dataadapter.fill is executed
>> but
>> it has not or it must be fetched from the database in some way that I
>> don't
>> understand.
>>
>> Note as I wrote earlier this is just the beginning of a large sql
>> statement.
>>
>> I have two questions.
>> 1.Can anybody explain how this form_slag can be used in the way that it
>> is
>> used ?
>>
>> 2. What does it mean when we have this in the select statement '2'; as
>> send_ro_roles ?
>>
>> select distinct form_nr,
>> '2;' as send_ro_roles,
>> '2;' || k.kli_klia as roles_and persons,
>> k.klia_namn as klient_ansvarig,
>> (
>> select distinct bizref_check_freq
>> from bizrulereference
>> where bizref_date =
>> (
>> select MAX(bizref_date)
>> from bizrulereference
>> where BIZREF_FORM_TYPE = form_slag
>
> 1) See Correlated subquery
>
> 2) See column alias
>
> //Walt
>
Here is the complete sql statement. I have great problem to understand this
sql statement because it doesn't exist any
kind of comment or documentation.
My opinion is that writing such sql statement without documenting is
absolutely forbidden.
I have a lot of questions but we can start with this one if
anybody can explain how this form_slag can be used in the way that it is
used ?
Se more info in my earlier mail.
select distinct form_nr,
'2;' as send_to_roles,
'2;' || k.kli_klia as roles_and persons,
k.klia_namn as klient_ansvarig,
(
select distinct bizref_check_freq
from bizrulereference
where bizref_date =
(
select MAX(bizref_date) from bizrulereference where BIZREF_FORM_TYPE = form_slag and (bizref_affars_omrade = GETBUSINESSAREABYSERVICECODE(form_service) or bizref_affars_omrade = -2) and bizref_current_risk_grade = GET_NEW_RISKVALUE(form_riskklass) and bizref_former_risk_grade = GET_NEW_RISKVALUE(FORM_FORMER_RISKGRADE) and bizref_date <= form_registererad_datum)
and bizref_form_type = form_slag
and (bizref_affars_omrade = GETBUSINESSAREABYSERVICECODE(form:service) or bizref_affars_omrade = -2)
and bizref_current_risk_grade = GET_NEW_RISKVALUE(form_riskklass) and bizref_former_risk_grade = GET_NEW_RISKVALUE(FORM_FORMER_RISKGRADE) )+form_godkand_datum giltig_tom,
FORM_SLAG_JOIN.KEY_NAME form_slag_text,
e2.form_klientnr, e2.form_klient_namn, e2.form_godkand_datum
from(
select f.*
from (
select e.* from vy_eacform_sweac20 e where ((e.form_case_status = 4 and e.form_doc_status <> 0) or e.form_status = 3) and e.form_slag in ('1','2') and form_klientnr = 93801 and e.form_godkand_datum = (select max(form_godkand_datum) from vy_eacform_sweac20 where e.form_klientnr = form_klientnr and ((form_case_status = 4 and form_doc_status <> 0) or form_status = 3) and form_slag in ('1','2'))) f where ( select bizref_check_freq from bizrulereference where bizref_date = ( select max(bizref_date) from bizrulereference where bizref_form_type = f.form_slag and (bizref_affars_omrade = GETBUSINESSAREABYSERVICECODE(f.form_service) or bizref_affars_omrade = -2) and bizref_current_risk_grade = GET_NEW_RISKVALUE(f.form_riskklass) and bizref_former_risk_grade = GET_NEW_RISKVALUE(f.FORM_FORMER_RISKGRADE)
and bizref_date <= f.form_registererad_datum )
and bizref_form_type = f.form_slag
and (bizref_affars_omrade = GETBUSINESSAREABYSERVICECODE(f.form_service) or bizref_affars_omrade = -2)
and bizref_current_risk_grade = GET_NEW_RISKVALUE(f.form_riskklass) and bizref_former_risk_grade = GET_NEW_RISKVALUE (f.FORM_FORMER_RISKGRADE)
) + f.form_godkand_datum - 30 < current_date) e2 JOIN vy_sweac_klient k ON k.klientnr = e2.form_klientnr and k.kli_sts <> 4 join (
select ve2.form_klientnr,
max(ve2.form_registererad_datum) max_form_registererad_datum from (
select *
from vy_eacform_sweac20 ve
where ((ve.form_case_status = 4 and ve.form_doc_status <> 0) or
ve.form_status = 3) and ve.form_slag in ('1','2') ve2 JOIN vy_sweac_klient kl ON kl.klientnr = ve2.form_klientnr and kl.kli_sts <>4
GROUP BY ve2.form_klientnr) maxReg
on maxReg.form_klientnr = e2.form_klientnr and maxReg.max_form_registererad_datum =
e2.form_registererad_datum
LEFT OUTER JOIN winture.VY_ANST_NAMN klient_ansvarig ON klient_ansvarig.ANSTNR =
e2.form_klient_ansvarig
left join SWEAC.EACLOOKUP FORM_SLAG_JOIN on FORM_SLAG_JOIN.KEY_CATEGORY = 'FormSlag' and FORM_SLAG_JOIN.KEY_VALUE = e2.FORM_SLAG order by form_nr ASC Received on Mon Jul 18 2011 - 10:35:33 CDT