Bonjour à tous,
Je ne suis pas convaincu que mon titre soit très évocateur mais je ne savais pas très bien quoi mettre. J'aurai besoin de l'expérience de l'un de vous
Alors voilà, en faisant touner une requête, j'ai ce résultat là:
WORDER --- ID ----- TYPE
1 ------ 280710 ----- 19
2 ------ 275435 ----- 13
3 ------ 276838 ----- 13
4 ------ 276870 ----- 13
5 ------ 276970 ----- 13
6 ------ 276983 ----- 13
7 ------ 276995 ----- 13
8 ------ 277014 ----- 13
9 ------ 277130 ----- 13
10 ----- 277350 ----- 13
11 ----- 277362 ----- 13
12 ----- 280711 ----- 19
13 ----- 277374 ----- 13
14 ----- 277386 ----- 13
15 ----- 277398 ----- 13
16 ----- 277450 ----- 13
17 ----- 277462 ----- 13
18 ----- 277710 ----- 13
19 ----- 277770 ----- 13
20 ----- 277805 ----- 13
21 ----- 277830 ----- 13
22 ----- 277842 ----- 13
23 ----- 280712 ----- 19
24 ----- 277854 ----- 13
25 ----- 278030 ----- 13
etc..........
La première colonne est un numéro d'ordre, la deuxième c'est l'ID de mes échantillons et la troisième est le type d'échantillon (13 ou 19)
En fait, le type 19 représente des blancs pour mes analyses.
Et, le type 13 ce sont mes échantillons à analyser.
Ce que j'aurai besoin de faire apparaître, c'est la position à laquelle vont se retrouver les blancs et les échantillons dans mon instrument.
Les blancs (type 19) sont soit à la position 1203 et 1204 et s'intercale tous les 10 échantillons.
Les échantillons (type 13) peuvent occuper 12 places sur mon rack et donc eux se trouvent au position 2101 à 2112, puis 2201 à 2212, puis 2301 à 2312, etc...
Concrètement, je dois avoir ce résultat là précisément:
WORDER --- ID ----- TYPE --- POSITION
1 ------ 280710 ----- 19 ----- 1203
2 ------ 275435 ----- 13 ----- 2101
3 ------ 276838 ----- 13 ----- 2102
4 ------ 276870 ----- 13 ----- 2103
5 ------ 276970 ----- 13 ----- 2104
6 ------ 276983 ----- 13 ----- 2105
7 ------ 276995 ----- 13 ----- 2106
8 ------ 277014 ----- 13 ----- 2107
9 ------ 277130 ----- 13 ----- 2108
10 ----- 277350 ----- 13 ----- 2109
11 ----- 277362 ----- 13 ----- 2110
12 ----- 280711 ----- 19 ----- 1204
13 ----- 277374 ----- 13 ----- 2111
14 ----- 277386 ----- 13 ----- 2112
15 ----- 277398 ----- 13 ----- 2201
16 ----- 277450 ----- 13 ----- 2202
17 ----- 277462 ----- 13 ----- 2203
18 ----- 277710 ----- 13 ----- 2204
19 ----- 277770 ----- 13 ----- 2205
20 ----- 277805 ----- 13 ----- 2206
21 ----- 277830 ----- 13 ----- 2207
22 ----- 277842 ----- 13 ----- 2208
23 ----- 280712 ----- 19 ----- 1203
24 ----- 277854 ----- 13 ----- 2209
25 ----- 278030 ----- 13 ----- 2210
etc....
J'ai donc commencé à écrire la requête suivante:
Mais elle ne me donne que ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT worder, id, type, CASE WHEN type = 13 THEN '2'||(100 + ROW_NUMBER() OVER(PARTITION BY type ORDER BY order)) WHEN type = 19 THEN '120'||(2 + ROW_NUMBER() OVER(PARTITION BY type ORDER BY order)) END Position FROM worksheet ORDER BY worder
WORDER --- ID ----- TYPE --- POSITION
1 ------ 280710 ----- 19 ----- 1203
2 ------ 275435 ----- 13 ----- 2101
3 ------ 276838 ----- 13 ----- 2102
4 ------ 276870 ----- 13 ----- 2103
5 ------ 276970 ----- 13 ----- 2104
6 ------ 276983 ----- 13 ----- 2105
7 ------ 276995 ----- 13 ----- 2106
8 ------ 277014 ----- 13 ----- 2107
9 ------ 277130 ----- 13 ----- 2108
10 ----- 277350 ----- 13 ----- 2109
11 ----- 277362 ----- 13 ----- 2110
12 ----- 280711 ----- 19 ----- 1204
13 ----- 277374 ----- 13 ----- 2111
14 ----- 277386 ----- 13 ----- 2112
15 ----- 277398 ----- 13 ----- 2113
16 ----- 277450 ----- 13 ----- 2114
17 ----- 277462 ----- 13 ----- 2115
18 ----- 277710 ----- 13 ----- 2116
19 ----- 277770 ----- 13 ----- 2117
20 ----- 277805 ----- 13 ----- 2118
21 ----- 277830 ----- 13 ----- 2119
22 ----- 277842 ----- 13 ----- 2120
23 ----- 280712 ----- 19 ----- 1205
24 ----- 277854 ----- 13 ----- 2121
25 ----- 278030 ----- 13 ----- 2122
etc.
Alors oui, ça marche pour les 14 premières lignes, mais après... ça se complique.
Comment dois-je faire pour qu'une fois à 1204, il reparte à 1203 (dans le cas du type 19)
Et pour qu'une fois arrivé au 2112, il poursuive par 2201 jusque 2212, puis 2301 jusque 2312, etc... (dans le cas du type 13)
Mercii pour vos conseils et suggestions, ça m'aiderait bien
Henri
Partager