-----Message d'origine-----
Bonjour,
J'ai une requête en pl-sql que je veux utiliser en
transact-sql mais je n'y arrive pas.........
SELECT IAFE01_H.id_peine_defnd
FROM
(SELECT DISTINCT id_peine_defnd,
FIRST_VALUE(in_crean_potnt_non_reals) OVER
(PARTITION BY id_peine_defnd order by id_trans_fincr
desc ) as
in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE TRUNC(dh_creat) <= TO_DATE
('20040731','RRRRMMDD')
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Est-ce que quelqu'un peut m'aider??
Merci beaucoup,
Mélanie
.
-----Message d'origine-----
Bonjour,
J'ai une requête en pl-sql que je veux utiliser en
transact-sql mais je n'y arrive pas.........
SELECT IAFE01_H.id_peine_defnd
FROM
(SELECT DISTINCT id_peine_defnd,
FIRST_VALUE(in_crean_potnt_non_reals) OVER
(PARTITION BY id_peine_defnd order by id_trans_fincr
desc ) as
in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE TRUNC(dh_creat) <= TO_DATE
('20040731','RRRRMMDD')
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Est-ce que quelqu'un peut m'aider??
Merci beaucoup,
Mélanie
.
-----Message d'origine-----
Bonjour,
J'ai une requête en pl-sql que je veux utiliser en
transact-sql mais je n'y arrive pas.........
SELECT IAFE01_H.id_peine_defnd
FROM
(SELECT DISTINCT id_peine_defnd,
FIRST_VALUE(in_crean_potnt_non_reals) OVER
(PARTITION BY id_peine_defnd order by id_trans_fincr
desc ) as
in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE TRUNC(dh_creat) <= TO_DATE
('20040731','RRRRMMDD')
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Est-ce que quelqu'un peut m'aider??
Merci beaucoup,
Mélanie
.
-----Message d'origine-----
Bonjour,
J'ai une requête en pl-sql que je veux utiliser en
transact-sql mais je n'y arrive pas.........
SELECT IAFE01_H.id_peine_defnd
FROM
(SELECT DISTINCT id_peine_defnd,
FIRST_VALUE(in_crean_potnt_non_reals) OVER
(PARTITION BY id_peine_defnd order by id_trans_fincr
desc ) as
in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE TRUNC(dh_creat) <= TO_DATE
('20040731','RRRRMMDD')
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Est-ce que quelqu'un peut m'aider??
Merci beaucoup,
Mélanie
.
-----Message d'origine-----
Bonjour,
J'ai une requête en pl-sql que je veux utiliser en
transact-sql mais je n'y arrive pas.........
SELECT IAFE01_H.id_peine_defnd
FROM
(SELECT DISTINCT id_peine_defnd,
FIRST_VALUE(in_crean_potnt_non_reals) OVER
(PARTITION BY id_peine_defnd order by id_trans_fincr
desc ) as
in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE TRUNC(dh_creat) <= TO_DATE
('20040731','RRRRMMDD')
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Est-ce que quelqu'un peut m'aider??
Merci beaucoup,
Mélanie
.
-----Message d'origine-----
Bonjour,
J'ai une requête en pl-sql que je veux utiliser en
transact-sql mais je n'y arrive pas.........
SELECT IAFE01_H.id_peine_defnd
FROM
(SELECT DISTINCT id_peine_defnd,
FIRST_VALUE(in_crean_potnt_non_reals) OVER
(PARTITION BY id_peine_defnd order by id_trans_fincr
desc ) as
in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE TRUNC(dh_creat) <= TO_DATE
('20040731','RRRRMMDD')
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Est-ce que quelqu'un peut m'aider??
Merci beaucoup,
Mélanie
.
Le problème aussi c'est qu'à peu près personne ne connaît le PL-SQL. Vous
devriez d'abord nous dire qu'elle est la fonction de l'instruction OVER
PARTITION et quel est le but de cette requête.
S. L.
"Mélanie" wrote in message
news:297b01c4ad31$6af1c9d0$
Bonjour,
Je crois que je n'ai pas donné assez de détails et que ma
requête était plutôt dificile à lire. C'est la ligne où
il y a la fonction first_value que j'ai de la difficulté
à transformer en requête transact-sql. Voici ma requête
que je dois transformer:
SELECT IAFE01_H.id_peine_defnd
FROM
(
SELECT DISTINCT id_peine_defnd,
(select top 1 in_crean_potnt_non_reals FROM
IAFE01_TRANS_FINCR group by
id_peine_defnd,in_crean_potnt_non_reals,id_trans_fincr
order by id_trans_fincr desc )
as in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE dh_creat <= @Date
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Merci à l'avance de votre aide,
Mélanie-----Message d'origine-----
Bonjour,
J'ai une requête en pl-sql que je veux utiliser en
transact-sql mais je n'y arrive pas.........
SELECT IAFE01_H.id_peine_defnd
FROM
(SELECT DISTINCT id_peine_defnd,
FIRST_VALUE(in_crean_potnt_non_reals) OVER
(PARTITION BY id_peine_defnd order by id_trans_fincr
desc ) as
in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE TRUNC(dh_creat) <= TO_DATE
('20040731','RRRRMMDD')
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Est-ce que quelqu'un peut m'aider??
Merci beaucoup,
Mélanie
.
Le problème aussi c'est qu'à peu près personne ne connaît le PL-SQL. Vous
devriez d'abord nous dire qu'elle est la fonction de l'instruction OVER
PARTITION et quel est le but de cette requête.
S. L.
"Mélanie" <anonymous@discussions.microsoft.com> wrote in message
news:297b01c4ad31$6af1c9d0$a601280a@phx.gbl...
Bonjour,
Je crois que je n'ai pas donné assez de détails et que ma
requête était plutôt dificile à lire. C'est la ligne où
il y a la fonction first_value que j'ai de la difficulté
à transformer en requête transact-sql. Voici ma requête
que je dois transformer:
SELECT IAFE01_H.id_peine_defnd
FROM
(
SELECT DISTINCT id_peine_defnd,
(select top 1 in_crean_potnt_non_reals FROM
IAFE01_TRANS_FINCR group by
id_peine_defnd,in_crean_potnt_non_reals,id_trans_fincr
order by id_trans_fincr desc )
as in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE dh_creat <= @Date
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Merci à l'avance de votre aide,
Mélanie
-----Message d'origine-----
Bonjour,
J'ai une requête en pl-sql que je veux utiliser en
transact-sql mais je n'y arrive pas.........
SELECT IAFE01_H.id_peine_defnd
FROM
(SELECT DISTINCT id_peine_defnd,
FIRST_VALUE(in_crean_potnt_non_reals) OVER
(PARTITION BY id_peine_defnd order by id_trans_fincr
desc ) as
in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE TRUNC(dh_creat) <= TO_DATE
('20040731','RRRRMMDD')
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Est-ce que quelqu'un peut m'aider??
Merci beaucoup,
Mélanie
.
Le problème aussi c'est qu'à peu près personne ne connaît le PL-SQL. Vous
devriez d'abord nous dire qu'elle est la fonction de l'instruction OVER
PARTITION et quel est le but de cette requête.
S. L.
"Mélanie" wrote in message
news:297b01c4ad31$6af1c9d0$
Bonjour,
Je crois que je n'ai pas donné assez de détails et que ma
requête était plutôt dificile à lire. C'est la ligne où
il y a la fonction first_value que j'ai de la difficulté
à transformer en requête transact-sql. Voici ma requête
que je dois transformer:
SELECT IAFE01_H.id_peine_defnd
FROM
(
SELECT DISTINCT id_peine_defnd,
(select top 1 in_crean_potnt_non_reals FROM
IAFE01_TRANS_FINCR group by
id_peine_defnd,in_crean_potnt_non_reals,id_trans_fincr
order by id_trans_fincr desc )
as in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE dh_creat <= @Date
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Merci à l'avance de votre aide,
Mélanie-----Message d'origine-----
Bonjour,
J'ai une requête en pl-sql que je veux utiliser en
transact-sql mais je n'y arrive pas.........
SELECT IAFE01_H.id_peine_defnd
FROM
(SELECT DISTINCT id_peine_defnd,
FIRST_VALUE(in_crean_potnt_non_reals) OVER
(PARTITION BY id_peine_defnd order by id_trans_fincr
desc ) as
in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE TRUNC(dh_creat) <= TO_DATE
('20040731','RRRRMMDD')
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Est-ce que quelqu'un peut m'aider??
Merci beaucoup,
Mélanie
.
Sylvain,
Votre requête est peut-être equivalent à une de ces deux?
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and (
select top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.dh_creat < '20040801'
order by T2.id_trans_fincr desc
) = 'N'
ou
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and not exists (
select * top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.id_trans_fincr > T1.id_trans_fincr
and T2.dh_creat < '20040801'
and T2.in_crean_potnt_non_reals <> 'N'
)
Steve Kass
Drew University
Sylvain Lafontaine wrote:Le problème aussi c'est qu'à peu près personne ne connaît le PL-SQL. Vous
devriez d'abord nous dire qu'elle est la fonction de l'instruction OVER
PARTITION et quel est le but de cette requête.
S. L.
"Mélanie" wrote in message
news:297b01c4ad31$6af1c9d0$
Bonjour,
Je crois que je n'ai pas donné assez de détails et que ma
requête était plutôt dificile à lire. C'est la ligne où
il y a la fonction first_value que j'ai de la difficulté
à transformer en requête transact-sql. Voici ma requête
que je dois transformer:
SELECT IAFE01_H.id_peine_defnd
FROM
(
SELECT DISTINCT id_peine_defnd,
(select top 1 in_crean_potnt_non_reals FROM
IAFE01_TRANS_FINCR group by
id_peine_defnd,in_crean_potnt_non_reals,id_trans_fincr
order by id_trans_fincr desc )
as in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE dh_creat <= @Date
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Merci à l'avance de votre aide,
Mélanie-----Message d'origine-----
Bonjour,
J'ai une requête en pl-sql que je veux utiliser en
transact-sql mais je n'y arrive pas.........
SELECT IAFE01_H.id_peine_defnd
FROM
(SELECT DISTINCT id_peine_defnd,
FIRST_VALUE(in_crean_potnt_non_reals) OVER
(PARTITION BY id_peine_defnd order by id_trans_fincr
desc ) as
in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE TRUNC(dh_creat) <= TO_DATE
('20040731','RRRRMMDD')
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Est-ce que quelqu'un peut m'aider??
Merci beaucoup,
Mélanie
.
Sylvain,
Votre requête est peut-être equivalent à une de ces deux?
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and (
select top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.dh_creat < '20040801'
order by T2.id_trans_fincr desc
) = 'N'
ou
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and not exists (
select * top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.id_trans_fincr > T1.id_trans_fincr
and T2.dh_creat < '20040801'
and T2.in_crean_potnt_non_reals <> 'N'
)
Steve Kass
Drew University
Sylvain Lafontaine wrote:
Le problème aussi c'est qu'à peu près personne ne connaît le PL-SQL. Vous
devriez d'abord nous dire qu'elle est la fonction de l'instruction OVER
PARTITION et quel est le but de cette requête.
S. L.
"Mélanie" <anonymous@discussions.microsoft.com> wrote in message
news:297b01c4ad31$6af1c9d0$a601280a@phx.gbl...
Bonjour,
Je crois que je n'ai pas donné assez de détails et que ma
requête était plutôt dificile à lire. C'est la ligne où
il y a la fonction first_value que j'ai de la difficulté
à transformer en requête transact-sql. Voici ma requête
que je dois transformer:
SELECT IAFE01_H.id_peine_defnd
FROM
(
SELECT DISTINCT id_peine_defnd,
(select top 1 in_crean_potnt_non_reals FROM
IAFE01_TRANS_FINCR group by
id_peine_defnd,in_crean_potnt_non_reals,id_trans_fincr
order by id_trans_fincr desc )
as in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE dh_creat <= @Date
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Merci à l'avance de votre aide,
Mélanie
-----Message d'origine-----
Bonjour,
J'ai une requête en pl-sql que je veux utiliser en
transact-sql mais je n'y arrive pas.........
SELECT IAFE01_H.id_peine_defnd
FROM
(SELECT DISTINCT id_peine_defnd,
FIRST_VALUE(in_crean_potnt_non_reals) OVER
(PARTITION BY id_peine_defnd order by id_trans_fincr
desc ) as
in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE TRUNC(dh_creat) <= TO_DATE
('20040731','RRRRMMDD')
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Est-ce que quelqu'un peut m'aider??
Merci beaucoup,
Mélanie
.
Sylvain,
Votre requête est peut-être equivalent à une de ces deux?
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and (
select top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.dh_creat < '20040801'
order by T2.id_trans_fincr desc
) = 'N'
ou
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and not exists (
select * top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.id_trans_fincr > T1.id_trans_fincr
and T2.dh_creat < '20040801'
and T2.in_crean_potnt_non_reals <> 'N'
)
Steve Kass
Drew University
Sylvain Lafontaine wrote:Le problème aussi c'est qu'à peu près personne ne connaît le PL-SQL. Vous
devriez d'abord nous dire qu'elle est la fonction de l'instruction OVER
PARTITION et quel est le but de cette requête.
S. L.
"Mélanie" wrote in message
news:297b01c4ad31$6af1c9d0$
Bonjour,
Je crois que je n'ai pas donné assez de détails et que ma
requête était plutôt dificile à lire. C'est la ligne où
il y a la fonction first_value que j'ai de la difficulté
à transformer en requête transact-sql. Voici ma requête
que je dois transformer:
SELECT IAFE01_H.id_peine_defnd
FROM
(
SELECT DISTINCT id_peine_defnd,
(select top 1 in_crean_potnt_non_reals FROM
IAFE01_TRANS_FINCR group by
id_peine_defnd,in_crean_potnt_non_reals,id_trans_fincr
order by id_trans_fincr desc )
as in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE dh_creat <= @Date
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Merci à l'avance de votre aide,
Mélanie-----Message d'origine-----
Bonjour,
J'ai une requête en pl-sql que je veux utiliser en
transact-sql mais je n'y arrive pas.........
SELECT IAFE01_H.id_peine_defnd
FROM
(SELECT DISTINCT id_peine_defnd,
FIRST_VALUE(in_crean_potnt_non_reals) OVER
(PARTITION BY id_peine_defnd order by id_trans_fincr
desc ) as
in_crean_potnt_non_reals
FROM IAFE01_TRANS_FINCR
WHERE TRUNC(dh_creat) <= TO_DATE
('20040731','RRRRMMDD')
) IAFE01_H
WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
Est-ce que quelqu'un peut m'aider??
Merci beaucoup,
Mélanie
.
Sylvain,
Votre requête est peut-être equivalent à une de ces deux?
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and (
select top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.dh_creat < '20040801'
order by T2.id_trans_fincr desc
) = 'N'
ou
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and not exists (
select * top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.id_trans_fincr > T1.id_trans_fincr
and T2.dh_creat < '20040801'
and T2.in_crean_potnt_non_reals <> 'N'
)
Steve Kass
Drew University
Sylvain Lafontaine wrote:
>Le problème aussi c'est qu'à peu près personne ne connaît le PL-SQL. Vous
>devriez d'abord nous dire qu'elle est la fonction de l'instruction OVER
>PARTITION et quel est le but de cette requête.
>
>S. L.
>
>"Mélanie" wrote in message
>news:297b01c4ad31$6af1c9d0$
>Bonjour,
>Je crois que je n'ai pas donné assez de détails et que ma
>requête était plutôt dificile à lire. C'est la ligne où
>il y a la fonction first_value que j'ai de la difficulté
>à transformer en requête transact-sql. Voici ma requête
>que je dois transformer:
>SELECT IAFE01_H.id_peine_defnd
>FROM
>(
> SELECT DISTINCT id_peine_defnd,
> (select top 1 in_crean_potnt_non_reals FROM
> IAFE01_TRANS_FINCR group by
> id_peine_defnd,in_crean_potnt_non_reals,id_trans_fincr
>order by id_trans_fincr desc )
>as in_crean_potnt_non_reals
> FROM IAFE01_TRANS_FINCR
> WHERE dh_creat <= @Date
>) IAFE01_H
>WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
>
>Merci à l'avance de votre aide,
>Mélanie
>
>
>
>
>
>>-----Message d'origine-----
>>Bonjour,
>>J'ai une requête en pl-sql que je veux utiliser en
>>transact-sql mais je n'y arrive pas.........
>>
>>SELECT IAFE01_H.id_peine_defnd
>>
>>FROM
>>
>> (SELECT DISTINCT id_peine_defnd,
>>
>> FIRST_VALUE(in_crean_potnt_non_reals) OVER
>>(PARTITION BY id_peine_defnd order by id_trans_fincr
>>desc ) as
>>in_crean_potnt_non_reals
>>
>>
>>
>>FROM IAFE01_TRANS_FINCR
>>
>>
>> WHERE TRUNC(dh_creat) <= TO_DATE
>>('20040731','RRRRMMDD')
>>
>> ) IAFE01_H
>>
>>WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
>>
>>
>>
>>Est-ce que quelqu'un peut m'aider??
>>Merci beaucoup,
>>Mélanie
>>.
>>
>>
>>
>
>
>
>
Sylvain,
Votre requête est peut-être equivalent à une de ces deux?
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and (
select top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.dh_creat < '20040801'
order by T2.id_trans_fincr desc
) = 'N'
ou
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and not exists (
select * top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.id_trans_fincr > T1.id_trans_fincr
and T2.dh_creat < '20040801'
and T2.in_crean_potnt_non_reals <> 'N'
)
Steve Kass
Drew University
Sylvain Lafontaine wrote:
>Le problème aussi c'est qu'à peu près personne ne connaît le PL-SQL. Vous
>devriez d'abord nous dire qu'elle est la fonction de l'instruction OVER
>PARTITION et quel est le but de cette requête.
>
>S. L.
>
>"Mélanie" <anonymous@discussions.microsoft.com> wrote in message
>news:297b01c4ad31$6af1c9d0$a601280a@phx.gbl...
>Bonjour,
>Je crois que je n'ai pas donné assez de détails et que ma
>requête était plutôt dificile à lire. C'est la ligne où
>il y a la fonction first_value que j'ai de la difficulté
>à transformer en requête transact-sql. Voici ma requête
>que je dois transformer:
>SELECT IAFE01_H.id_peine_defnd
>FROM
>(
> SELECT DISTINCT id_peine_defnd,
> (select top 1 in_crean_potnt_non_reals FROM
> IAFE01_TRANS_FINCR group by
> id_peine_defnd,in_crean_potnt_non_reals,id_trans_fincr
>order by id_trans_fincr desc )
>as in_crean_potnt_non_reals
> FROM IAFE01_TRANS_FINCR
> WHERE dh_creat <= @Date
>) IAFE01_H
>WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
>
>Merci à l'avance de votre aide,
>Mélanie
>
>
>
>
>
>>-----Message d'origine-----
>>Bonjour,
>>J'ai une requête en pl-sql que je veux utiliser en
>>transact-sql mais je n'y arrive pas.........
>>
>>SELECT IAFE01_H.id_peine_defnd
>>
>>FROM
>>
>> (SELECT DISTINCT id_peine_defnd,
>>
>> FIRST_VALUE(in_crean_potnt_non_reals) OVER
>>(PARTITION BY id_peine_defnd order by id_trans_fincr
>>desc ) as
>>in_crean_potnt_non_reals
>>
>>
>>
>>FROM IAFE01_TRANS_FINCR
>>
>>
>> WHERE TRUNC(dh_creat) <= TO_DATE
>>('20040731','RRRRMMDD')
>>
>> ) IAFE01_H
>>
>>WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
>>
>>
>>
>>Est-ce que quelqu'un peut m'aider??
>>Merci beaucoup,
>>Mélanie
>>.
>>
>>
>>
>
>
>
>
Sylvain,
Votre requête est peut-être equivalent à une de ces deux?
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and (
select top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.dh_creat < '20040801'
order by T2.id_trans_fincr desc
) = 'N'
ou
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and not exists (
select * top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.id_trans_fincr > T1.id_trans_fincr
and T2.dh_creat < '20040801'
and T2.in_crean_potnt_non_reals <> 'N'
)
Steve Kass
Drew University
Sylvain Lafontaine wrote:
>Le problème aussi c'est qu'à peu près personne ne connaît le PL-SQL. Vous
>devriez d'abord nous dire qu'elle est la fonction de l'instruction OVER
>PARTITION et quel est le but de cette requête.
>
>S. L.
>
>"Mélanie" wrote in message
>news:297b01c4ad31$6af1c9d0$
>Bonjour,
>Je crois que je n'ai pas donné assez de détails et que ma
>requête était plutôt dificile à lire. C'est la ligne où
>il y a la fonction first_value que j'ai de la difficulté
>à transformer en requête transact-sql. Voici ma requête
>que je dois transformer:
>SELECT IAFE01_H.id_peine_defnd
>FROM
>(
> SELECT DISTINCT id_peine_defnd,
> (select top 1 in_crean_potnt_non_reals FROM
> IAFE01_TRANS_FINCR group by
> id_peine_defnd,in_crean_potnt_non_reals,id_trans_fincr
>order by id_trans_fincr desc )
>as in_crean_potnt_non_reals
> FROM IAFE01_TRANS_FINCR
> WHERE dh_creat <= @Date
>) IAFE01_H
>WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
>
>Merci à l'avance de votre aide,
>Mélanie
>
>
>
>
>
>>-----Message d'origine-----
>>Bonjour,
>>J'ai une requête en pl-sql que je veux utiliser en
>>transact-sql mais je n'y arrive pas.........
>>
>>SELECT IAFE01_H.id_peine_defnd
>>
>>FROM
>>
>> (SELECT DISTINCT id_peine_defnd,
>>
>> FIRST_VALUE(in_crean_potnt_non_reals) OVER
>>(PARTITION BY id_peine_defnd order by id_trans_fincr
>>desc ) as
>>in_crean_potnt_non_reals
>>
>>
>>
>>FROM IAFE01_TRANS_FINCR
>>
>>
>> WHERE TRUNC(dh_creat) <= TO_DATE
>>('20040731','RRRRMMDD')
>>
>> ) IAFE01_H
>>
>>WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
>>
>>
>>
>>Est-ce que quelqu'un peut m'aider??
>>Merci beaucoup,
>>Mélanie
>>.
>>
>>
>>
>
>
>
>
Bonjour Steve,
En fait, ce que je veux c'est reproduire la fonction FIRST_VALUE d'Oracle.
Donc, je veux un enregistrement UNIQUE contenant un ID ainsi qu'un
montant.
Ce montant est le premier que je rencontre pour le ID car dans ma requête
je
dois d'abord grouper par ID puis trier en fonction d'une date. Ainsi, le
premier montant que je rencontre pour le ID est celui qui est le plus
proche
de la date en question.
Je rencontre cependant différents problèmes:
Le order by prime sur le group by ce qui fait que mes ID ne sont pas
nécessairement à la suite...
Le top 1 ne fonctionne pas puisqu'il sélectionne uniquement le premier
enregistrement alors que moi je veux le premier mais pour chacun des ID
(donc
chacun de mes groupes) et le premier montant rencontré n'est pas
nécessairement le plus petit, c'est celui dont la date est la plus proche.
De plus, les colonnes spécifiées dans la clause order by doivent être dans
le SELECT à cause du DISTINCT.
Les problèmes que je rencontre ne se posent pas avec la clause FIRST_VALUE
mais je dois travailler en transact-sql pour trouver quelque chose
d'équivalent.......
Je n'ai toujours pas trouvé de sollution alors si quelqu'un peut m'aider
;)
Un gros merci!
Mélanie
"Steve Kass" wrote:Sylvain,
Votre requête est peut-être equivalent à une de ces deux?
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and (
select top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.dh_creat < '20040801'
order by T2.id_trans_fincr desc
) = 'N'
ou
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and not exists (
select * top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.id_trans_fincr > T1.id_trans_fincr
and T2.dh_creat < '20040801'
and T2.in_crean_potnt_non_reals <> 'N'
)
Steve Kass
Drew University
Sylvain Lafontaine wrote:
>Le problème aussi c'est qu'à peu près personne ne connaît le PL-SQL.
>Vous
>devriez d'abord nous dire qu'elle est la fonction de l'instruction OVER
>PARTITION et quel est le but de cette requête.
>
>S. L.
>
>"Mélanie" wrote in message
>news:297b01c4ad31$6af1c9d0$
>Bonjour,
>Je crois que je n'ai pas donné assez de détails et que ma
>requête était plutôt dificile à lire. C'est la ligne où
>il y a la fonction first_value que j'ai de la difficulté
>à transformer en requête transact-sql. Voici ma requête
>que je dois transformer:
>SELECT IAFE01_H.id_peine_defnd
>FROM
>(
> SELECT DISTINCT id_peine_defnd,
> (select top 1 in_crean_potnt_non_reals FROM
> IAFE01_TRANS_FINCR group by
> id_peine_defnd,in_crean_potnt_non_reals,id_trans_fincr
>order by id_trans_fincr desc )
>as in_crean_potnt_non_reals
> FROM IAFE01_TRANS_FINCR
> WHERE dh_creat <= @Date
>) IAFE01_H
>WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
>
>Merci à l'avance de votre aide,
>Mélanie
>
>
>
>
>
>>-----Message d'origine-----
>>Bonjour,
>>J'ai une requête en pl-sql que je veux utiliser en
>>transact-sql mais je n'y arrive pas.........
>>
>>SELECT IAFE01_H.id_peine_defnd
>>
>>FROM
>>
>> (SELECT DISTINCT id_peine_defnd,
>>
>> FIRST_VALUE(in_crean_potnt_non_reals) OVER
>>(PARTITION BY id_peine_defnd order by id_trans_fincr
>>desc ) as
>>in_crean_potnt_non_reals
>>
>>
>>
>>FROM IAFE01_TRANS_FINCR
>>
>>
>> WHERE TRUNC(dh_creat) <= TO_DATE
>>('20040731','RRRRMMDD')
>>
>> ) IAFE01_H
>>
>>WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
>>
>>
>>
>>Est-ce que quelqu'un peut m'aider??
>>Merci beaucoup,
>>Mélanie
>>.
>>
>>
>>
>
>
>
>
Bonjour Steve,
En fait, ce que je veux c'est reproduire la fonction FIRST_VALUE d'Oracle.
Donc, je veux un enregistrement UNIQUE contenant un ID ainsi qu'un
montant.
Ce montant est le premier que je rencontre pour le ID car dans ma requête
je
dois d'abord grouper par ID puis trier en fonction d'une date. Ainsi, le
premier montant que je rencontre pour le ID est celui qui est le plus
proche
de la date en question.
Je rencontre cependant différents problèmes:
Le order by prime sur le group by ce qui fait que mes ID ne sont pas
nécessairement à la suite...
Le top 1 ne fonctionne pas puisqu'il sélectionne uniquement le premier
enregistrement alors que moi je veux le premier mais pour chacun des ID
(donc
chacun de mes groupes) et le premier montant rencontré n'est pas
nécessairement le plus petit, c'est celui dont la date est la plus proche.
De plus, les colonnes spécifiées dans la clause order by doivent être dans
le SELECT à cause du DISTINCT.
Les problèmes que je rencontre ne se posent pas avec la clause FIRST_VALUE
mais je dois travailler en transact-sql pour trouver quelque chose
d'équivalent.......
Je n'ai toujours pas trouvé de sollution alors si quelqu'un peut m'aider
;)
Un gros merci!
Mélanie
"Steve Kass" wrote:
Sylvain,
Votre requête est peut-être equivalent à une de ces deux?
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and (
select top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.dh_creat < '20040801'
order by T2.id_trans_fincr desc
) = 'N'
ou
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and not exists (
select * top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.id_trans_fincr > T1.id_trans_fincr
and T2.dh_creat < '20040801'
and T2.in_crean_potnt_non_reals <> 'N'
)
Steve Kass
Drew University
Sylvain Lafontaine wrote:
>Le problème aussi c'est qu'à peu près personne ne connaît le PL-SQL.
>Vous
>devriez d'abord nous dire qu'elle est la fonction de l'instruction OVER
>PARTITION et quel est le but de cette requête.
>
>S. L.
>
>"Mélanie" <anonymous@discussions.microsoft.com> wrote in message
>news:297b01c4ad31$6af1c9d0$a601280a@phx.gbl...
>Bonjour,
>Je crois que je n'ai pas donné assez de détails et que ma
>requête était plutôt dificile à lire. C'est la ligne où
>il y a la fonction first_value que j'ai de la difficulté
>à transformer en requête transact-sql. Voici ma requête
>que je dois transformer:
>SELECT IAFE01_H.id_peine_defnd
>FROM
>(
> SELECT DISTINCT id_peine_defnd,
> (select top 1 in_crean_potnt_non_reals FROM
> IAFE01_TRANS_FINCR group by
> id_peine_defnd,in_crean_potnt_non_reals,id_trans_fincr
>order by id_trans_fincr desc )
>as in_crean_potnt_non_reals
> FROM IAFE01_TRANS_FINCR
> WHERE dh_creat <= @Date
>) IAFE01_H
>WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
>
>Merci à l'avance de votre aide,
>Mélanie
>
>
>
>
>
>>-----Message d'origine-----
>>Bonjour,
>>J'ai une requête en pl-sql que je veux utiliser en
>>transact-sql mais je n'y arrive pas.........
>>
>>SELECT IAFE01_H.id_peine_defnd
>>
>>FROM
>>
>> (SELECT DISTINCT id_peine_defnd,
>>
>> FIRST_VALUE(in_crean_potnt_non_reals) OVER
>>(PARTITION BY id_peine_defnd order by id_trans_fincr
>>desc ) as
>>in_crean_potnt_non_reals
>>
>>
>>
>>FROM IAFE01_TRANS_FINCR
>>
>>
>> WHERE TRUNC(dh_creat) <= TO_DATE
>>('20040731','RRRRMMDD')
>>
>> ) IAFE01_H
>>
>>WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
>>
>>
>>
>>Est-ce que quelqu'un peut m'aider??
>>Merci beaucoup,
>>Mélanie
>>.
>>
>>
>>
>
>
>
>
Bonjour Steve,
En fait, ce que je veux c'est reproduire la fonction FIRST_VALUE d'Oracle.
Donc, je veux un enregistrement UNIQUE contenant un ID ainsi qu'un
montant.
Ce montant est le premier que je rencontre pour le ID car dans ma requête
je
dois d'abord grouper par ID puis trier en fonction d'une date. Ainsi, le
premier montant que je rencontre pour le ID est celui qui est le plus
proche
de la date en question.
Je rencontre cependant différents problèmes:
Le order by prime sur le group by ce qui fait que mes ID ne sont pas
nécessairement à la suite...
Le top 1 ne fonctionne pas puisqu'il sélectionne uniquement le premier
enregistrement alors que moi je veux le premier mais pour chacun des ID
(donc
chacun de mes groupes) et le premier montant rencontré n'est pas
nécessairement le plus petit, c'est celui dont la date est la plus proche.
De plus, les colonnes spécifiées dans la clause order by doivent être dans
le SELECT à cause du DISTINCT.
Les problèmes que je rencontre ne se posent pas avec la clause FIRST_VALUE
mais je dois travailler en transact-sql pour trouver quelque chose
d'équivalent.......
Je n'ai toujours pas trouvé de sollution alors si quelqu'un peut m'aider
;)
Un gros merci!
Mélanie
"Steve Kass" wrote:Sylvain,
Votre requête est peut-être equivalent à une de ces deux?
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and (
select top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.dh_creat < '20040801'
order by T2.id_trans_fincr desc
) = 'N'
ou
select distinct T1.id_peine_defnd
from IAFE01_TRANS_FINCR T1
where dh_creat < '20040801'
and not exists (
select * top 1 T2.in_crean_potnt_non_reals
from IAFE01_TRANS_FINCR T2
where T1.id_peine_defnd = T2.id_peine_defnd
and T2.id_trans_fincr > T1.id_trans_fincr
and T2.dh_creat < '20040801'
and T2.in_crean_potnt_non_reals <> 'N'
)
Steve Kass
Drew University
Sylvain Lafontaine wrote:
>Le problème aussi c'est qu'à peu près personne ne connaît le PL-SQL.
>Vous
>devriez d'abord nous dire qu'elle est la fonction de l'instruction OVER
>PARTITION et quel est le but de cette requête.
>
>S. L.
>
>"Mélanie" wrote in message
>news:297b01c4ad31$6af1c9d0$
>Bonjour,
>Je crois que je n'ai pas donné assez de détails et que ma
>requête était plutôt dificile à lire. C'est la ligne où
>il y a la fonction first_value que j'ai de la difficulté
>à transformer en requête transact-sql. Voici ma requête
>que je dois transformer:
>SELECT IAFE01_H.id_peine_defnd
>FROM
>(
> SELECT DISTINCT id_peine_defnd,
> (select top 1 in_crean_potnt_non_reals FROM
> IAFE01_TRANS_FINCR group by
> id_peine_defnd,in_crean_potnt_non_reals,id_trans_fincr
>order by id_trans_fincr desc )
>as in_crean_potnt_non_reals
> FROM IAFE01_TRANS_FINCR
> WHERE dh_creat <= @Date
>) IAFE01_H
>WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
>
>Merci à l'avance de votre aide,
>Mélanie
>
>
>
>
>
>>-----Message d'origine-----
>>Bonjour,
>>J'ai une requête en pl-sql que je veux utiliser en
>>transact-sql mais je n'y arrive pas.........
>>
>>SELECT IAFE01_H.id_peine_defnd
>>
>>FROM
>>
>> (SELECT DISTINCT id_peine_defnd,
>>
>> FIRST_VALUE(in_crean_potnt_non_reals) OVER
>>(PARTITION BY id_peine_defnd order by id_trans_fincr
>>desc ) as
>>in_crean_potnt_non_reals
>>
>>
>>
>>FROM IAFE01_TRANS_FINCR
>>
>>
>> WHERE TRUNC(dh_creat) <= TO_DATE
>>('20040731','RRRRMMDD')
>>
>> ) IAFE01_H
>>
>>WHERE IAFE01_H.in_crean_potnt_non_reals = 'N'
>>
>>
>>
>>Est-ce que quelqu'un peut m'aider??
>>Merci beaucoup,
>>Mélanie
>>.
>>
>>
>>
>
>
>
>