MS SQL query Exact Globe stuklijst

LazyGee

Nieuwe gebruiker
Lid geworden
25 sep 2025
Berichten
2
Goedemorgen allen,

Ik probeer middels een SQL query een complete stuklijst uit Exact Globe te halen maar heb moeite met de parent-child relaties.

Onze data ziet er als volgt uit:

1758785015207.png

In dit voorbeeld bestaat T.98.01541 uit een aantal sub-items (level 1) en deze sub-items kunnen op zich zelf ook weer uit een aantal sub-items (level 2, 3, etc.) bestaan.

Hoe krijg ik nu deze volledige lijst in een tabel, als ik zoek op hoofditem T.98.01541.

Iets vergelijkbaars komt uit een standaardrapport van Exact / Productie / Verslagen / Structuur maar die query is nergens in te zien.

Tips en trucs zijn van harte welkom.

Alvast bedankt.
 
Kun je de data uploaden in plaats van een afbeelding?
Met een plaatje kunnen we namelijk niet veel doen.
Ik zie namelijk dat er verschillende kolommen verborgen zijn.
 
Hoi Peter,

Bij deze de data die is verkregen met deze query:

select * from dbo.recipe where itemprod = 'T.98.01541'

Nu wil ik voor de gevonden waarden in kolom itemreq weer een vergelijkbare query doen en deze combineren met het eerste deel, net zo lang tot alle items onder het hoofditem zijn gevonden om zo uiteindelijk een volledige lijst te verkrijgen.

Groet,
Remy
 

Bijlagen

Om een Bill Of Materials (BOM) te ondervragen moet je een self join creëren.
Als ik de gegevens bekijk denk ik dat itemprod + sequenceno een unieke combinatie zijn, waarbij sequence 0 het item zelf is en sequences 1 -> n de componenten.
Dan zou je voor 2 levels een qry kunnen gebruiken zoals (de tabelnaam veranderen naar de echte naam):
Code:
select GI1.[ItemProd] as TopLevelItem, GI1.itemreq as levelitem2, Gi1.[quantity] as Quantlvl2, gi1.[sequenceno] g1sn
    ,GI2.itemreq as LevelItem3, GI2.quantity as QuantLev3
from [dbo].[ExactGlobeItems] GI1 left outer join [dbo].[ExactGlobeItems] GI2 on GI2.[ItemProd] = GI1.itemreq
where GI1.ItemProd = 'T.98.01541'
and GI1.sequenceno > 0 and Gi2.[sequenceno] > 0

voor de verdere levels moet je telkens een nieuwe join toevoegen, of je kan ook met een procedure werken die een temp table gebruikt die voor elk level niuewe gegevens toevoegt
 
Terug
Bovenaan Onderaan