Bonjour
j' ai une table qui contient 3 info(on va faire plus simple que en vrai.
exemple de valeur :
pk_parcelle | id_pc | superficie
___________________________
3620 | 5119| 3500
3621 | 5119| 10000
3622 | 5100| 2000
3623 | 5102| 3600
3624 | 4589| 3500
je veux recupéré le pk_parcelle correspondant à un id_pc donné(5119 dans l exmple) et dont la superficie est la plus grande.
je dois donc avoir en retour la valeur : 3621
pour cela, j'ai envisager plusieur requetes :
SELECT pk_parcelle
FROM PC_PARCELLES
WHERE id_pc = 5119
AND rownum<2
ORDER BY superficie desc;
celle la me renvoi bien l'information, mais selon un collegue, c'est un hazard. le ROWNUM etant fait avant le ORDER BY en theorie(cours SQL de delevoppez.com) j'ai tendance a abonder dans son sens.
lorsque j'enleve le rownum, j'obtient : (en rajoutant les champ pour une meilleur visibilité)
SELECT pk_parcelle,id_pc,superficie
FROM PC_PARCELLES
WHERE id_pc = 5119
ORDER BY superficie desc;
pk_parcelle | id_pc | superficie
___________________________
3621 | 5119| 10000
3620 | 5119| 3500
3622 | 5100| 2000
Comment pourrais je selectionner juste la premiere ligne(une sorte de limit )
Merci
pierre









Répondre avec citation
Partager