Bonjour,
J'utilise Sqlview pour faire des requêtes dans une SGBD Oracle, je voudrais compléter ma requête ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 select a.itmref_0, a.bomalt_0 ,(select count (*) as cpt from bomd d where a.itmref_0=d.itmref_0 and a.bomalt_0=d.bomalt_0) from mdptst.bom a where a.bomalt_0=94 and (a.itmref_0 like '10%' or a.itmref_0 like '20%') and a.usesta_0=2 and a.bomalttyp_0=2 and exists ( select * from bomd b where a.itmref_0=b.itmref_0 and a.bomalt_0=b.bomalt_0 and b.cpnitmref_0 like '20RB%' ) and not exists ( select * from bomd c where a.itmref_0=c.itmref_0 and a.bomalt_0=c.bomalt_0 and c.cpnitmref_0 not like '20RB%' ) ;
dans une gestion des nomenclatures d'articles, j'utilise deux tables : bom qui est la table d'entête et bomd qui est la table de détail, je peux avoir n enregistrement dans bomd pour un seul enregistrement dans bom selon le nombre d'article dans la nomenclature.
l'idée est d'extraire les nomenclatures (donc je part de la table d'entête bom), ayant un article qui commence par '20RB' dans la table de détail (ça fonctionne via l'instruction exists) et j'exclus les nomenclatures qui ont un article différent de '20RB' (ça fonctionne aussi via l'instruction not exists ). par contre je ne sais pas comment faire pour exclure les nomenclatures ayant plusieurs enregistrements, donc plusieurs lignes de l'article 20RB, j'ai fait une sous requête pour compter le nombre d’enregistrement mais je ne sais pas comment je peux faire pour exclure quand j'ai un nombre d'enregistrement supérieur à 1.
Merci pour votre aide
Cordialement,
Partager