SELECT *
FROM T_CLIENT
WHERE T_CLIENT.CL_RAISON_SOCIALE LIKE {pClientRS}%
and T_CLIENT.CL_ID in
(
SELECT T_CLIENT.CL_ID,
SUM(T_FACTURE.TOTAL) AS Total
FROM T_FACTURE, T_CLIENT
WHERE T_CLIENT.CL_ID = T_FACTURE.CL_ID
AND T_FACTURE.FA_DATE BETWEEN {pDateDeb} AND {pDateFin}
GROUP BY T_CLIENT.CL_ID
[
union
SELECT T_CLIENT.CL_ID,
SUM(T_AVOIR_FACTURE.TOTAL) AS Total
from T_AVOIR_FACTURE, T_CLIENT
where T_AVOIR_FACTURE.CL_ID = T_CLIENT.CL_ID
and T_AVOIR_FACTURE.AF_DATE between {pDateDeb} AND {pDateFin}
group by T_CLIENT.CL_ID
]
)
ORDER BY T_CLIENT.CL_RAISON_SOCIALE ASC
1 - celle-ci s'execute en moins de 7 sec (très gros volume de données)
2 - si j'enlève tout ce qui est entre [] le temps passe à + de 20 sec
qq'un saurait me dire pourquoi car il me semble qu'elle devrait être
plus rapide dans le 2ème cas
je voudrais recupérer la liste des clients ayant une ou des factures payées selon une période donnée
Sauf erreur :
SELECT t_client.* FROM t_client,t_facture WHERE EXISTS ( SELECT * FROM t_paiement_facture WHERE t_paiement_facture.fa_id = t_facture.fa_id ) AND t_client.cli_id = t_facture.cli_id
Pour la période, il suffit d'une clause sur la date (sur les factures ou les paiements, selon ce que tu souhaites)
JeAn-PhI a écrit :
bonjour
je reviens avec une autre requête dont je n'arrive pas à formulé
voici le modèle des data
je voudrais recupérer la liste des clients ayant une ou des factures
payées selon une période donnée
Sauf erreur :
SELECT t_client.* FROM t_client,t_facture
WHERE EXISTS
(
SELECT * FROM t_paiement_facture
WHERE t_paiement_facture.fa_id = t_facture.fa_id
)
AND t_client.cli_id = t_facture.cli_id
Pour la période, il suffit d'une clause sur la date (sur les factures ou
les paiements, selon ce que tu souhaites)
je voudrais recupérer la liste des clients ayant une ou des factures payées selon une période donnée
Sauf erreur :
SELECT t_client.* FROM t_client,t_facture WHERE EXISTS ( SELECT * FROM t_paiement_facture WHERE t_paiement_facture.fa_id = t_facture.fa_id ) AND t_client.cli_id = t_facture.cli_id
Pour la période, il suffit d'une clause sur la date (sur les factures ou les paiements, selon ce que tu souhaites)
JeAn-PhI
Le 10/02/2007, Axel a supposé :
JeAn-PhI a écrit :
bonjour
je reviens avec une autre requête dont je n'arrive pas à formulé voici le modèle des data
je voudrais recupérer la liste des clients ayant une ou des factures payées selon une période donnée
Sauf erreur :
SELECT t_client.* FROM t_client,t_facture WHERE EXISTS ( SELECT * FROM t_paiement_facture WHERE t_paiement_facture.fa_id = t_facture.fa_id ) AND t_client.cli_id = t_facture.cli_id
Pour la période, il suffit d'une clause sur la date (sur les factures ou les paiements, selon ce que tu souhaites)
merci je vais voir le temps d'exe
-- Cordialement JeAn-PhI
Le 10/02/2007, Axel a supposé :
JeAn-PhI a écrit :
bonjour
je reviens avec une autre requête dont je n'arrive pas à formulé
voici le modèle des data
je voudrais recupérer la liste des clients ayant une ou des factures payées
selon une période donnée
Sauf erreur :
SELECT t_client.* FROM t_client,t_facture
WHERE EXISTS
(
SELECT * FROM t_paiement_facture
WHERE t_paiement_facture.fa_id = t_facture.fa_id
)
AND t_client.cli_id = t_facture.cli_id
Pour la période, il suffit d'une clause sur la date (sur les factures ou les
paiements, selon ce que tu souhaites)
je voudrais recupérer la liste des clients ayant une ou des factures payées selon une période donnée
Sauf erreur :
SELECT t_client.* FROM t_client,t_facture WHERE EXISTS ( SELECT * FROM t_paiement_facture WHERE t_paiement_facture.fa_id = t_facture.fa_id ) AND t_client.cli_id = t_facture.cli_id
Pour la période, il suffit d'une clause sur la date (sur les factures ou les paiements, selon ce que tu souhaites)
merci je vais voir le temps d'exe
-- Cordialement JeAn-PhI
JeAn-PhI
Axel a exprimé avec précision :
JeAn-PhI a écrit :
bonjour
je reviens avec une autre requête dont je n'arrive pas à formulé voici le modèle des data
je voudrais recupérer la liste des clients ayant une ou des factures payées selon une période donnée
Sauf erreur :
SELECT t_client.* FROM t_client,t_facture WHERE EXISTS ( SELECT * FROM t_paiement_facture WHERE t_paiement_facture.fa_id = t_facture.fa_id ) AND t_client.cli_id = t_facture.cli_id
Pour la période, il suffit d'une clause sur la date (sur les factures ou les paiements, selon ce que tu souhaites)
donne pas le bon résultat
-- Cordialement JeAn-PhI
Axel a exprimé avec précision :
JeAn-PhI a écrit :
bonjour
je reviens avec une autre requête dont je n'arrive pas à formulé
voici le modèle des data
je voudrais recupérer la liste des clients ayant une ou des factures payées
selon une période donnée
Sauf erreur :
SELECT t_client.* FROM t_client,t_facture
WHERE EXISTS
(
SELECT * FROM t_paiement_facture
WHERE t_paiement_facture.fa_id = t_facture.fa_id
)
AND t_client.cli_id = t_facture.cli_id
Pour la période, il suffit d'une clause sur la date (sur les factures ou les
paiements, selon ce que tu souhaites)
je voudrais recupérer la liste des clients ayant une ou des factures payées selon une période donnée
Sauf erreur :
SELECT t_client.* FROM t_client,t_facture WHERE EXISTS ( SELECT * FROM t_paiement_facture WHERE t_paiement_facture.fa_id = t_facture.fa_id ) AND t_client.cli_id = t_facture.cli_id
Pour la période, il suffit d'une clause sur la date (sur les factures ou les paiements, selon ce que tu souhaites)
donne pas le bon résultat
-- Cordialement JeAn-PhI
Pierre BOUSQUET
select DISTINCT cli_id FROM t_facture LEFT JOIN t_client ON t_client.cli_id=t_facture.cli_id WHERE fa_date BETWEEN DATE1 AND DATE2 AND fa_id IN (SELECT fa_id FROM t_paiement_facture)
JeAn-PhI a exprimé avec précision :
bonjour
je reviens avec une autre requête dont je n'arrive pas à formulé voici le modèle des data
" Ne me dites pas que ce problème est difficile. S'il n'était pas difficile, ce ne serait pas un problème. "
select DISTINCT cli_id
FROM t_facture
LEFT JOIN t_client ON t_client.cli_id=t_facture.cli_id
WHERE fa_date BETWEEN DATE1 AND DATE2 AND fa_id IN (SELECT fa_id FROM
t_paiement_facture)
JeAn-PhI a exprimé avec précision :
bonjour
je reviens avec une autre requête dont je n'arrive pas à formulé
voici le modèle des data
select DISTINCT cli_id FROM t_facture LEFT JOIN t_client ON t_client.cli_id=t_facture.cli_id WHERE fa_date BETWEEN DATE1 AND DATE2 AND fa_id IN (SELECT fa_id FROM t_paiement_facture)
JeAn-PhI a exprimé avec précision :
bonjour
je reviens avec une autre requête dont je n'arrive pas à formulé voici le modèle des data