Problème requete

Résolu
mandaillou Messages postés 53 Date d'inscription dimanche 26 novembre 2000 Statut Membre Dernière intervention 17 février 2006 - 30 sept. 2005 à 17:41
mandaillou Messages postés 53 Date d'inscription dimanche 26 novembre 2000 Statut Membre Dernière intervention 17 février 2006 - 3 oct. 2005 à 15:35
Salut
J'ai la requête suivante qui me permet de récuperer toutes les transactions qui ont même montant, même idmembre et même id_partenaire

<cfquery name="selection" datasource="#datasourcename#">
select count(*),idmembre,montant,id_partenaire
from transactions_jour
group by idmembre,montant,id_partenaire
having count(*) > 1
</cfquery>

<cfquery name="sel" datasource="#datasourcename#">
select idmembre,montant,id_partenaire from transactions_jour
where idmembre=#selection.idmembre# and montant=#selection.montant# and id_partenaire=#selection.id_partenaire#
</cfquery>
<cfset var=#sel.recordcount#-1>

Ensuite je veux supprimer tous ces transactions similaires sauf une, c'est dans cette optique que j'ai déclaré la variable var qui est égale au nombre de transactions -1.

<cfquery name="delete" datasource="#datasourcename#" maxrows=#var#>
delete transactions_jour where id_partenaire=#sel.id_partenaire# and idmembre=#sel.idmembre# and montant=#sel.montant#
</cfquery>

Mais maxrows ne marche pas avec delete.

Merci

2 réponses

mandaillou Messages postés 53 Date d'inscription dimanche 26 novembre 2000 Statut Membre Dernière intervention 17 février 2006
3 oct. 2005 à 15:35
Salut
Finalement ma requête d'avant ne me renvoyait pas ce que je voulais et je l'ai modifiée. Maintenant elle me renvoie toutes les transactions similaires sauf une donc le problème ne se pose plus.
Merci quand même de ton aide. Ca pourra me servir à l'avenir.

Tchuss
3
cs_lfontaine Messages postés 203 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 11 mai 2006
30 sept. 2005 à 21:57
Salut,

Tu peux faire un truc du style:
DELETE transactions_jour
FROM (SELECT TOP #var# * FROM transactions_jour WHERE where idmembre=#selection.idmembre# and montant=#selection.montant# and id_partenaire=#selection.id_partenaire#) AS tj
WHERE transactions_jour.id = tj.id;

Ou transactions_jour.id est la cle primaire de ta table.

Laurent
0
Rejoignez-nous