Bonjour à tous,
je suis en train de me former à hibernate, et je me pose plusieurs questions liées à la requête ci-dessous.
Dois-je la diviser en plusieurs sous-requêtes, rester en SQL natif, utiliser HQL, Criteria, JPQL ???
Et sous quel forme retourner le résulatst (Objet, Lilst...)
Merci beaucoup pour votre aide.
SELECT
U.NAME, U.PRENOM, U.GENDER,
T2.USER_ALIAS,T2.HLA LOGIN_APP,
T2.SUM_CAV_CSL, T2.NB_CSL, T2.SOLDE_CSL,
T2.NB_CAV, T2.SOLDE_CAV, T2.NB_CREDIT_PRIVALIS,
DECODE(T1.NB_CAV,0,0,NULL,0,1) CAV_AUTRE_APP, DECODE(T1.NB_CSL,0,0,NULL,0,1)
CSL_AUTRE_APP, DECODE(T1.NB_CREDIT_PRIVALIS,0,0,NULL,0,1) PRI_AUTRE_APP,
T2.VALO_PORTEF,
DECODE(T2.NB_PEA_CTO,0,0,NULL,0,1), DECODE(T1.NB_PEA_CTO,0,0,NULL,0,1) NB_PEA_CTO_AUTRE_APP
FROM
(
SELECT
H.USER_ALIAS, '0' LOGIN_APP,
NVL(SUM(DECODE(H.TYPE_CONTRAT,'CSL',H.SOLDE_CONTRAT,0))+SUM(DECODE(H.TYPE_CONTRAT,'CVP',H.SOLDE_CONTRAT,0))+SUM(DECODE ( H.TYPE_CONTRAT,'PRE',H.SOLDE_CONTRAT ,0 )),0)/100 SUM_CAV_CSL,
SUM(DECODE ( H.TYPE_CONTRAT,'CSL',1,0 )) NB_CSL,
SUM(DECODE ( H.TYPE_CONTRAT,'CSL',H.SOLDE_CONTRAT ,0 ))/100 SOLDE_CSL,
SUM(DECODE ( H.TYPE_CONTRAT,'CVP',1,0 ))+SUM(DECODE(H.TYPE_CONTRAT,'PRE',1,0)) NB_CAV,
(SUM(DECODE ( H.TYPE_CONTRAT,'CVP',H.SOLDE_CONTRAT ,0 ))+SUM(DECODE ( H.TYPE_CONTRAT,'PRE',H.SOLDE_CONTRAT ,0 )))/100 SOLDE_CAV,
SUM(DECODE (TYPO.LIBELLE_COURT,'PRIVALIS',1,0 )) NB_CREDIT_PRIVALIS,
(SUM(DECODE ( H.TYPE_CONTRAT,'CTO',H.SOLDE_CONTRAT ,0 ))+SUM(DECODE ( H.TYPE_CONTRAT,'PEA',H.SOLDE_CONTRAT ,0 )))/100 VALO_PORTEF,
SUM(DECODE ( H.TYPE_CONTRAT,'PEA',1,0 ))+SUM(DECODE (H.TYPE_CONTRAT,'CTO',1,0 )) NB_PEA_CTO
FROM
HISTO H,
USER U,
TYPOLOGIE TYPO
WHERE H.USER_ALIAS in ( SELECT
H.USER_ALIAS
FROM HISTO H
WHERE
H.LOGIN_APP=?
) AND (U.USER_ALIAS=H.USER_ALIAS)
AND TYPO.NOM_TYPE ='ProduitCommercial'
AND TYPO.FLAG_VISIBLE='O'
AND TYPO.CODE = TO_CHAR(H.CODEPRODUITCOMMERCIAL)
and (
H.LOGIN_APP <> ?
OR H.LOGIN_APP IS NULL)
GROUP BY H.USER_ALIAS) T1,
(
SELECT
H.USER_ALIAS,H.LOGIN_APP HLA,
NVL(SUM(DECODE(H.TYPE_CONTRAT,'CSL',H.SOLDE_CONTRAT,0))+SUM(DECODE(H.TYPE_CONTRAT,'CVP',H.SOLDE_CONTRAT,0))+SUM(DECODE ( H.TYPE_CONTRAT,'PRE',H.SOLDE_CONTRAT ,0 )),0)/100 SUM_CAV_CSL,
SUM(DECODE ( H.TYPE_CONTRAT,'CSL',1,0 )) NB_CSL,
SUM(DECODE ( H.TYPE_CONTRAT,'CSL',H.SOLDE_CONTRAT ,0 ))/100 SOLDE_CSL,
SUM(DECODE ( H.TYPE_CONTRAT,'CVP',1,0 ))+SUM( DECODE(H.TYPE_CONTRAT,'PRE',1,0)) NB_CAV,
(SUM(DECODE ( H.TYPE_CONTRAT,'CVP',H.SOLDE_CONTRAT ,0 ))+SUM(DECODE ( H.TYPE_CONTRAT,'PRE',H.SOLDE_CONTRAT ,0 )))/100 SOLDE_CAV,
SUM(DECODE (TYPO.LIBELLE_COURT,'PRIVALIS',1,0 )) NB_CREDIT_PRIVALIS,
(SUM(DECODE ( H.TYPE_CONTRAT,'CTO',H.SOLDE_CONTRAT ,0 ))+SUM(DECODE ( H.TYPE_CONTRAT,'PEA',H.SOLDE_CONTRAT ,0 )))/100 VALO_PORTEF,
SUM(DECODE ( H.TYPE_CONTRAT,'PEA',1,0 ))+SUM(DECODE (H.TYPE_CONTRAT,'CTO',1,0 )) NB_PEA_CTO
FROM
HISTO H,
USER U,
TYPOLOGIE TYPO
WHERE
H.LOGIN_APP=?
AND (U.USER_ALIAS=H.USER_ALIAS)
AND TYPO.NOM_TYPE ='ProduitCommercial'
AND TYPO.FLAG_VISIBLE='O'
AND TYPO.CODE = TO_CHAR(H.CODEPRODUITCOMMERCIAL)
GROUP BY H.USER_ALIAS,H.LOGIN_APP) T2, USER U
WHERE T1.USER_ALIAS (+)= T2.USER_ALIAS
and T2.USER_ALIAS = U.USER_ALIAS
Partager