Questione : Problema di domanda di SQL

Sono stato chiesto di scoprire quanto materiale che abbiamo utilizzato in un mese consultando lo SQL database.

I può restituire tutte le parti del livello superiore usando il seguente class= " i lineNumbers " >
1 del >
SELECT codeBody InvMovements.StockCode " del prettyprint " " del class= del id= " codeSnippet833896 del >


This di
I quindi necessità accedere alla tabella del bom per restituire i materiali utilizzati per la tabella del bom di parts.
The ha la seguente struttura: il problema del
Component
QtyPer

The del
ParentPart è quello per tutto il ParentPart che dato la componente potrebbe anche comporrsi parecchi del
ParentPart xxx di parts.
e.g. è fatta della componente YYYY e gli usi QtyPer 12
ParentPart xxx è fatto della componente ZZZZ e gli usi QtyPer 2
ParentPart xxx è fatto di WWW componente ed il problema di QtyPer 3

The di usi ho è componente ZZZZ è of
ParentPart ZZZZ è fatto del aaaa componente e gli usi QtyPer 4
ParentPart ZZZZ è fatto di bbbb componente ed usi QtyPer 7

For l'esempio qui sopra avrei bisogno del Qty 14
Part WWWW del bbbb del
Part del Qty 8 di aaaa del Qty 12
Part del
uses
Part YYYY del return
ParentPart xxx Il Qty 3

and allora moltiplica il QTY della parte specifica per il QtyPer restituito nello SQL.

class= del

Risposta : Problema di domanda di SQL

selezionare X.StockCode [topLevelPart], X.Qty [topQty],
      Unir (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]
da (
      SELEZIONARE InvMovements.StockCode COME StockCode, la SOMMA (InvMovements.TrnQty) COME QTY
      Da InvMovements
      INTERNO UNIRE InvMaster SU InvMovements.StockCode = InvMaster.StockCode
      DOVE (InvMovements.EntryDate FRA il CONVERTITO (DATETIME, “00:00 2010-05-31: 00„, 102)
                                                        E CONVERTITO (DATETIME, “00:00 2010-06-27: 00„, 102))
        E (InvMovements.TrnType = “R ") E (InvMaster.ProductClass DENTRO (“PDM„, “PRM„, “il TM„, “PM "))
      GRUPPO da InvMovements.StockCode
) X
interno unire BOM A su A.ParentPart = X.StockCode
la parte di sinistra unisce BOM B su B.ParentPart = A.Component
la parte di sinistra unisce BOM C su C.ParentPart = B.Component
la parte di sinistra unisce BOM D su D.ParentPart = C.Component
la parte di sinistra unisce BOM E su E.ParentPart = D.Component
ORDINE da X.StockCode
Altre soluzioni  
 
programming4us programming4us