J'ai une table avec la colonne suivante.Récupérer des données dans le groupe en fonction de la valeur de l'autre colonne
BoxNumber Status
580 4
581 4
582 4
583 4
584 2
585 2
586 4
587 4
588 4
589 4
590 2
591 2
J'ai besoin d'une requête de sélection pour obtenir la sortie suivante.
StartingBoxNumber EndingBoxNumber Status
580 583 4
584 585 2
586 589 4
590 591 2
S'il vous plaît le rendre plus clair. Formatez également les données de la source de la table à aligner correctement. Votre question est difficile à lire. Que devrait contenir le champ "status" dans le jeu d'enregistrements résultant? –
J'ai reformaté les données pour les rendre lisibles. Je peux voir ce qui est nécessaire, je pense, mais je ne l'ai pas résolu en SQL: commence par le plus bas BoxNumber (580), qui a le statut 4. Maintenant, parcourez les numéros de la boîte dans l'ordre croissant jusqu'à ce que vous atteignez 4 (584). Vous avez maintenant votre premier résultat: 580 au numéro de case immédiatement précédent 584 (583) ont le statut 4. –
La solution implique probablement les fonctions analytiques LEAD() et LAG(). –