Вопрос : Проблема вопроса SQL

Я был спрошены, что нахожу вне насколько материала, котор мы использовали в одном месяце путем опрашивать SQL database.

I смогите возвратить все части высшего уровня путем использование следующий class= " lineNumbers " >
1 >
SELECT InvMovements.StockCode " prettyprint " " class= id= " codeSnippet833896 >


This
I тогда потребности достигнуть таблицы bom для того чтобы возвратить материалы используемые для таблицы bom parts.
The имеет следующий структуру: проблема
Component
QtyPer

The
ParentPart то для любого, котор дали ParentPart, котор компонент мог также быть составлен нескольких
ParentPart xxx parts.
e.g. сделан компонента YYYY и пользы QtyPer 12
ParentPart xxx сделаны компонента ZZZZ и пользы QtyPer 2
ParentPart xxx сделаны компонентного WWW и проблемой QtyPer 3

The польз я имею будет компонент ZZZZ будет составленное of
ParentPart ZZZZ сделана компонентного aaaa и пользы QtyPer 4
ParentPart ZZZZ сделаны компонентного bbbb и пользы QtyPer 7

For пример выше мне был бы нужен Qty 14
Part WWWW bbbb
Part Qty 8 aaaa Qty 12
Part
uses
Part YYYY return
ParentPart xxx Qty 3

and после этого умножит QTY индивидуальной части QtyPer возвращенным в первоначально SQL.

class=

Ответ : Проблема вопроса SQL

выберите X.StockCode [topLevelPart], X.Qty [topQty],
      Коалесцируйте (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]
от (
      ВЫБЕРИТЕ InvMovements.StockCode КАК StockCode, СУММА (InvMovements.TrnQty) КАК QTY
      ОТ InvMovements
      ВНУТРЕННЕ СОЕДИНИТЕ InvMaster НА InvMovements.StockCode = InvMaster.StockCode
      ГДЕ (InvMovements.EntryDate МЕЖДУ НОВООБРАЩЕННЫМ (DATETIME, «00:00 2010-05-31: 00», 102)
                                                        И НОВООБРАЩЕННЫЙ (DATETIME, «00:00 2010-06-27: 00», 102))
        И (InvMovements.TrnType = «r ") И (InvMaster.ProductClass ВНУТРИ («PDM», «PRM», «TM», «PM "))
      ГРУППА InvMovements.StockCode
) X
внутренне соедините BOM a на A.ParentPart = X.StockCode
левая сторона соединяет BOM b на B.ParentPart = A.Component
левая сторона соединяет BOM c на C.ParentPart = B.Component
левая сторона соединяет BOM d на D.ParentPart = C.Component
левая сторона соединяет BOM e на E.ParentPart = D.Component
ЗАКАЗ X.StockCode
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us