MS SQL query Exact Globe stuklijst

LazyGee

Nieuwe gebruiker
Lid geworden
25 sep 2025
Berichten
4
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
 
Dank NoellaG voor de reactie.

Het klopt inderdaad dat itemprod + sequenceno een unieke combinatie betreft.

Onze itemstructuur gaat maximaal 5 lagen diep dus ik heb de benodigde left outer joins gemaakt echter de uitkomst lijkt niet goed.
Niet alle items hebben een onderlaag, alleen de zgn. make items hebben dat, de koopdelen mis ik nu voor alle lagen behalve de laatste.

Nu heb de het join type verandert in full en dat lijkt er wel meer op:

select
a.itemprod as TopLevelItem,
a.sequenceno,
a.itemreq as LevelItem2,
a.quantity as QtyLevel2,
b.itemreq as LevelItem3,
b.quantity as QtyLevel3,
c.itemreq as LevelItem4,
c.quantity as QtyLevel4,
d.itemreq as LevelItem5,
d.quantity as QtyLevel5
from dbo.recipe a
full join dbo.recipe b on a.itemreq = b.itemprod
full join dbo.recipe c on b.itemreq = c.itemprod
full join dbo.recipe d on c.itemreq = d.itemprod
where a.itemprod = 'T.98.01541'

geeft

1759313586715.png

Eigenlijk zou ik liever een platte lijst hebben, dus 1 regel per item en dan in kolommen weergegeven op welk level ze zich bevinden en wie de parent is.
Op deze manier heb ik ook de aantallen en bedragen in 1 kolom.

Het voelt alsof we heel dichtbij zijn :).

Hartelijk dank voor het meedenken.
 
De bovenstaande query als CTE gebruiken en daarop een union van groepsqueries per level?
Of een procedure die met groepsqueries per level de resultaten van bovenstaande query toevoegt aan een temp table waar je via een resultaatquery de inhoud van opvraagt?
 
Als je me op weg kunt helpen met CTE heel graag.

Op een vergelijkbare manier probeer ik voor projecten met een gelaagde structuur de financiële transacties te verzamelen maar dat gaat tot nu toe nog steeds in twee stappen. Met query 1 de structuur bepalen en vervolgens de uitkomst in een tweede query gieten om de transacties op te halen.

Als ik m'n hoofd om deze CTE kan krijgen dan helpt me dat vast enorm bij de projectrapportages.
 
Terug
Bovenaan Onderaan