Bonjour à tous.
J'ai une table T_Tarif sur laquelle la clé primaire est composé des colonnes Article et Tarif
Je souhaite assurer l'unicité par la seule colonne Article et donc ne conserver qu'un seul tarif par article, en l'occurence celui dont l' ID est le plus faible.
Avant de commencer, j'ai lancé une requête me renvoyant les lignes a conserver :
Puis je me suis dit que pour supprimer les lignes superflues, il suffisait de supprimer les lignes ne faisant pas partie de cet ensemble :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT Article_ID, MIN(Tarif_ID) FROM T_TARIF GROUP BY Article_ID
Et là ca coince, Il semble que SQL SERVER 2005 n'accepte pas la ligne valuée (Article_ID, Tarif_ID) après la clause WHERE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DELETE FROM T_TARIF WHERE (Article_ID, Tarif_ID) NOT IN (SELECT Article_ID, MIN(Tarif_ID) FROM T_TARIF GROUP BY Article_ID)
De quelle façon faut-il s'y prendre ?
Suis-je obliger de bricoler une ligne valuée (du style caster en chaine puis concatener les 2 colonnes !!!) ?
Partager