Vraag : SQL het Probleem van de Vraag

Ik ben gevraagd om te weten te komen hoeveel materiaal dat wij in één maand door SQL database.

I hebben gebruikt te ondervragen alle hoogste niveaudelen kan terugkeren door volgende code.
1 te gebruiken:
2:
3:
4:
5:
6:
7:
SELECT InvMovements.StockCode ALS StockCode, SOM (InvMovements.TrnQty) ALS QTY
VAN InvMovements BINNEN TREED toe
                      InvMaster OP InvMovements.StockCode = InvMaster.StockCode
WAAR (InvMovements.EntryDate TUSSEN BEKEERLING (DATETIME, „00:00 2010-05-31: 00“, 102) EN ZETTEN OM (DATETIME, „00:00 2010-06-27: 00“, 102)) EN 
                      (InvMovements.TrnType = „R“) EN (InvMaster.ProductClass BINNEN („PDM“, „PRM“, „TM“, „PM“))
GROEP DOOR InvMovements.StockCode
ORDE DOOR InvMovements.StockCode


This keert partnumber (stockcode) terug en QTY voor month.
I wordt vervaardigd moet dan tot de bomlijst toegang hebben om de gebruikte materialen terug te keren want de bom lijst parts.
The de volgende structuur heeft: het probleem
ParentPart
Component
QtyPer

The is dat voor om het even welke bepaalde ParentPart de Component ook uit verscheidene parts.
e.g.
ParentPart xxx zou kunnen worden samengesteld wordt gemaakt van Component YYYY en gebruikt QtyPer 12
ParentPart xxx wordt gemaakt van Component ZZZZ en gebruikt QtyPer 2
ParentPart xxx wordt gemaakt van Component WWW en gebruikt het probleem/>The van QtyPer 3

ParentPart ZZZZ word gemaakt van aaaa van de Component en gebruik QtyPer 4
ParentPart ZZZZ word gemaakt van Component bbbb en gebruik QtyPer 7

For het voorbeeld heb gehad hierboven ik aan return
ParentPart xxx
uses
Part YYYY Qty 12
Part aaaa Qty 8
Part bbbb Qty 14
Part WWWW Qty 3

and vermenigvuldigen dan individueel die Deel QTY met QtyPer in originele SQL.

is teruggekeerd

Antwoord : SQL het Probleem van de Vraag

selecteer X.StockCode [topLevelPart], [topQty] X.Qty,
      Voeg me samen (E.Component, D.Component, C.Component, B.Component, A.Component) [lowerLevelPart],
      ISNULL (E.QtyPer, 1) *ISNULL (D.QtyPer, 1) *ISNULL (C.QtyPer, 1) *ISNULL (B.QtyPer, 1) *ISNULL (A.QtyPer, 1) *X.Qty [Qty]
van (
      SELECTEER InvMovements.StockCode ALS StockCode, SOM (InvMovements.TrnQty) ALS QTY
      VAN InvMovements
      BINNEN SLUIT me aan bij InvMaster OP InvMovements.StockCode = InvMaster.StockCode
      WAAR (InvMovements.EntryDate TUSSEN BEKEERLING (DATETIME, „00:00 2010-05-31: 00“, 102)
                                                        EN ZET OM (DATETIME, „00:00 2010-06-27: 00“, 102))
        EN (InvMovements.TrnType = „R“) EN (InvMaster.ProductClass BINNEN („PDM“, „PRM“, „TM“, „PM“))
      GROEP DOOR InvMovements.StockCode
) X
binnen sluit me aan bij BOM A op A.ParentPart = X.StockCode
de linkerzijde sluit zich aan bij BOM B op B.ParentPart = A.Component
de linkerzijde sluit zich aan bij BOM C op C.ParentPart = B.Component
de linkerzijde sluit zich aan bij BOM D op D.ParentPart = C.Component
de linkerzijde sluit zich aan bij BOM E op E.ParentPart = D.Component
ORDE DOOR X.StockCode
Andere oplossingen  
 
programming4us programming4us