Pergunta : Problema da pergunta do SQL

Eu fui pedido para encontrar quanto material que nós nos usamos em um mês interrogando o SQL database.

I pode retornar todas as peças do nível superior usando o seguinte class= " lineNumbers " >
1 do >
SELECT codeBody InvMovements.StockCode do " prettyprint " " do class= do id= " codeSnippet833896 do >


This de
I a seguir necessidade alcançar a tabela do bom para retornar os materiais usados para a tabela do bom de parts.
The tem a seguinte estrutura: o problema do
Component
QtyPer

The do
ParentPart é aquele para todo o ParentPart que dado o componente possa igualmente ser compo diversos do
ParentPart xxx de parts.
e.g. é do componente YYYY e os usos QtyPer 12
ParentPart xxx feitos do componente ZZZZ e os usos QtyPer 2
ParentPart xxx são feitos de WWW componente e o problema de QtyPer 3

The dos usos eu tenho é o componente ZZZZ é o of
ParentPart ZZZZ é feito do aaaa componente e os usos QtyPer 4
ParentPart ZZZZ são feitos do bbbb componente e usos QtyPer 7

For o exemplo acima eu precisaria Qty 14
Part WWWW do bbbb do
Part do Qty 8 do aaaa do Qty 12
Part do
uses
Part YYYY do return
ParentPart xxx O Qty 3

and multiplica então o QTY da parte individual pelo QtyPer retornado no SQL.

class= do

Resposta : Problema da pergunta do SQL

selecionar X.StockCode [topLevelPart], X.Qty [topQty],
      Coalescer (E.Component, D.Component, C.Component, B.Component, A.Component) [lowerLevelPart],
      *ISNULL do *ISNULL do *ISNULL do *ISNULL de ISNULL (E.QtyPer, 1) (D.QtyPer, 1) (C.QtyPer, 1) (B.QtyPer, 1) (A.QtyPer, 1) *X.Qty [Qty]
de (
      SELECIONAR InvMovements.StockCode COMO StockCode, SOMA (InvMovements.TrnQty) COMO o QTY
      De InvMovements
      INTERNO JUNTAR-SE a InvMaster EM InvMovements.StockCode = InvMaster.StockCode
      ONDE (InvMovements.EntryDate ENTRE o CONVERSO (DATETIME, “00:00 2010-05-31: 00”, 102)
                                                        E CONVERSO (DATETIME, “00:00 2010-06-27: 00”, 102))
        E (InvMovements.TrnType = “R ") E (InvMaster.ProductClass DENTRO (“PDM”, “PRM”, “TM”, “PM "))
      GRUPO por InvMovements.StockCode
) X
interno juntar-se a BOM A em A.ParentPart = X.StockCode
a esquerda junta-se a BOM B em B.ParentPart = A.Component
a esquerda junta-se a BOM C em C.ParentPart = B.Component
a esquerda junta-se a BOM D em D.ParentPart = C.Component
a esquerda junta-se a BOM E em E.ParentPart = D.Component
ORDEM por X.StockCode
Outras soluções  
 
programming4us programming4us