j'ai cette requêterésultats corrects, mais dans un ordre différent dans SQL
select s.emp_no, min(s.from_date)
from
**start** (select s.emp_no
from salaries s, employees e
where s.to_date=(select max(to_date) from salaries) and s.emp_no=e.emp_no
group by s.salary DESC
LIMIt 10) **end** as emps, salaries s
where emps.emp_no=s.emp_no
group by s.emp_no;
Le début - fin partie est correcte. Comme vous pouvez le voir, il n'y a qu'un seul champ qui contient le numéro de l'employé. L'emp_no est la clé étrangère aux salaires de la table. Le salaire de table a 2 champs. L'emp_no et le from_date. Chaque emp_no peut avoir plusieurs valeurs from_date. Je veux grouper toutes les lignes de chaque emp_no des salaires et garder le min de date_value. Cela montre corrige les résultats (je suppose), mais modifie l'ordre des lignes créées au début partie. Des idées sur le maintien de la commande?
Vous devrez peut-être ajouter un échantillon et un résultat souhaité, mais si vous souhaitez une commande spécifique, vous devrez également la commander dans la requête externe. Toute requête externe non ordonnée exécutée sur le résultat d'une sous-requête ordonnée réorganisera potentiellement le résultat dans un ordre pseudo-aléatoire. –
Alors, comment puis-je garder l'ordre de l'extérieur tel qu'il est dans l'intérieur? –
Pour répondre à cette question, vous aurez besoin d'ajouter des exemples de données et un résultat souhaité, il n'est pas très clair comment vous voulez un résultat groupé par quelque chose pour commander exactement comme le résultat d'origine. –