|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||||
|
Membre Expert
![]() Inscription : octobre 2004 Messages : 1 509 ![]() |
Bonjour,
Rapidement pour le contexte, j'ai ma table avec : clé, date, personne on peut avoir pour une clé et une date différente plusieurs enregistrement par personne : 1;01-02-2006;personne1 2;01-05-2006;personne1 3;01-03-2006;personne2 4;01-06-2006;personne2 J'ai besoin dans ma table de supprimer tous les éléments qui n'ont pas la date max (groupé par personne) et donc de ne conserver dans l'exemple précédent que les enregistrements 2 et 4. J'ai donc ma requête de sélection qui fonctionne impec et me renvoi les bons résultats : Code :
Le delete en question : Code :
Citation:
Merci
__________________
(\ _ /) (='.'=) (")-(") |
|||||
|
|
00
|
|
|
#2 |
![]() ![]() Claude RenouleaudDéveloppeur informatique Inscription : février 2006 Messages : 4 758 ![]() |
Salut
C'est là que ça coince! Une sous-requête ne peut se référer qu'à un seul champ. Non ? Perso je serais passé par une PS. @+ Claudius
__________________
A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira. |
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : avril 2005 Messages : 25 ![]() |
Je crainds que ceci ne soit une fonctionnalité FB 2.0 (mais je n'ai pas vérifié).
En palliatif, il est peut être envisageable d'utiliser une concaténation genre: DELETE FROM matable WHERE date||personne NOT IN (SELECT max(date), personne FROM matable WHERE date< {d '2007-04-25'} GROUP BY personne); Attention aux cas des dates nulles ;o) Slts PAscal |
|
|
00
|
|
|
#4 | |||
|
Membre Expert
![]() Inscription : octobre 2004 Messages : 1 509 ![]() |
Bonjour,
Effectivement, je suis de moins en moins persuadée de la bonne utilisation de cette formule sous firebird (l'idée venant d'un utilisateur d'une base oracle ...) La concaténation proposée par Pascal n'est pas plus concluante : Citation:
Code :
SQL error code = -104 Invalid command COLUMN 1 is specified without a name, SQL State: HY000, Error Code: 335544569[QUOTE] Pas d'autres idées ? Merci
__________________
(\ _ /) (='.'=) (")-(") |
|||
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Inscription : octobre 2004 Messages : 1 509 ![]() |
Bon finalement pas de solutions trouvées mais je fais autrement ...
Effectivement cette syntaxe avec firebird ne semble pas acceptée
__________________
(\ _ /) (='.'=) (")-(") |
|
|
00
|
|
|
#6 | |||
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
Code :
cf page 24 des dernières notes de version : Citation:
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
|||
|
00
|
Copyright © 2000-2012 - www.developpez.com