Obtention des bornes d'une séquence
Bonjour,
Je vous demande votre aide avisée car je pense que l'opération est assez complexe.
Je cherche à trouver les bornes min et max d'une sous-séquence.
Avec les données suivantes:
Numero |
CodeGroupe |
070220/001 |
1 |
070220/002 |
1 |
070220/003 |
1 |
070220/004 |
2 |
070220/006 |
2 |
070220/007 |
3 |
070220/008 |
3 |
070220/009 |
1 |
Veuillez noter qu'il n'existe pas de numéro 070220/005
Je cherche à obtenir, via une procédure stockée qui fait déjà toute la préparation pour obtenir les données de cette table temporaire, le résultat suivant:
CodeGroupe |
Num Min |
Num Max |
1 |
070220/001 |
070220/003 |
1 |
070220/009 |
070220/009 |
2 |
070220/004 |
070220/004 |
2 |
070220/006 |
070220/006 |
3 |
070220/007 |
070220/008 |
J'ai déjà essayé l'utilisation du ROW_NUMBER mais je n'obtiens pas le résultat attendu.
En parcourant le web, je suis tombé sur ceci:
WITH T
AS (SELECT ROW_NUMBER() OVER (ORDER BY number) - number AS Grp,
number
FROM mytable
WHERE status = 0)
SELECT MIN(number) AS [From],
MAX(number) AS [To]
FROM T
GROUP BY Grp
ORDER BY MIN(number)
Mais, en l'adaptant à mon cas cela ne peut pas fonctionner puisque le champs number qu'ils utilisent est de type bigint alors que dans mon cas c'est un varchar. Donc le "-Numero" ne fonctionnera pas.
Ai-je tord?
Pouvez-vous m'aider?
Je vous remercie d'avance.