Probleme de Requete sur Oracle

metalcoder Messages postés 193 Date d'inscription jeudi 14 février 2002 Statut Membre Dernière intervention 25 mars 2011 - 1 août 2006 à 16:45
metalcoder Messages postés 193 Date d'inscription jeudi 14 février 2002 Statut Membre Dernière intervention 25 mars 2011 - 2 août 2006 à 09:47
Salut tout le monde,

j'ai une requete du genre sous Oracle
cmd.CommandText "select msib.segment1 as article, nvl(sum(moq.transaction_quantity), 0) as stock from apps.mtl_onhand_quantities moq, apps.mtl_system_items_b msib Where moq.inventory_item_id msib.inventory_item_id and msib.segment1 in ('3011001', '3011002', '3011003', '3011004', '3011005', '3011006', '3011007', '3011008', '3011009', '3011010',  '3011012', '3011013', '3011014', '3011015', '3011016', '3011017', '3011018', '3011019', '3011020', '3011021', '3011022', '3011023', '3011024', '3011025', '3011026', '3011027', '3011028','3011031')and msib.organization_id = moq.organization_id and moq.subinventory_code in ('Principal', 'Dérogation', 'EXPE') and msib.organization_id = 147 group by msib.segment1 order by msib.segment1"

et j'aimerais remplacer les chiffres 3011001 etc... par une variable qui contient ces chiffres mais il me mets toujours une erreur.

Il doit bien exister une facon mais je ne vois pas laquelle. merci d'avance

Metalcoder

4 réponses

Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
1 août 2006 à 22:05
Salut, tu as essayé quelque chose comme ça ? :
"... in ('" & var1 & "', '" & var2 & "', '" .....
0
metalcoder Messages postés 193 Date d'inscription jeudi 14 février 2002 Statut Membre Dernière intervention 25 mars 2011 1
1 août 2006 à 22:08
je voulais pas arrivé la mais je vais essayer.merci

Metalcoder
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
1 août 2006 à 22:35
Je ne vois pas trop le moyen de faire autrement en sql. Que ce soit avec Oracle ou une autre sgbd.
A la limite, var1, var2, ... peuvent être contenus dans un tableau (var(1), var(2), ...) et tu pourrais construire ta chaine avec une boucle.
Ou alors une table contenant tes valeurs et ça deviendrait : " ... in (select tonchamp from tatable)" .... A voir...
0
metalcoder Messages postés 193 Date d'inscription jeudi 14 février 2002 Statut Membre Dernière intervention 25 mars 2011 1
2 août 2006 à 09:47
bon en faite j'ai réussi en bidouillant un ptit peu

ma boucle pour creer ma chaine 

MaChaine = "'"
While rc.EOF = False
    MaChaine = MaChaine & rc.Fields("Code_Article") & "','"
    rc.MoveNext
 Wend
MaChaine = Mid(MaChaine, 1, (Len(MaChaine) - 2))

comme ca j'ai le meme format a savoir "xxxx","xxxx","xxxx","xxxx"

et apres j'ai juste a mettre ma requete a jour

and msib.segment1 in (" & MaChaine & ") and msib.organization_id

Merci pour ton aide
@+

Metalcoder
0
Rejoignez-nous