2013-04-28 3 views
0

J'ai une table qui a une clé composite de 3 colonnesSQL Supprimer basée sur la valeur max

st_id, sj_id, order 

et que vous voulez supprimer une ligne basée sur une st_id spécifique et sj_id et en prenant le maximum (ordre)

Pourriez-vous m'aider s'il vous plaît?

Répondre

1

Pour autant que je sache, vous devez le faire en deux étapes (ce qui est de la mémoire, donc peut ne pas compiler première fois):

DELETE 
FROM table 
WHERE st_id = my_st_id 
AND sj_id = my_sj_id 
AND order IN (
    SELECT MAX(order) 
    FROM table 
    WHERE st_id = my_st_id 
    AND sj_id = my_sj_id) 

Ce que cela fait est effectuer l'intérieur (SELECT) interrogez d'abord, en retournant l'ordre maximum. Ces résultats sont ensuite passés à la requête externe qui effectue la suppression.

+0

Merci beaucoup. – RonaDona

Questions connexes