|SELECT | ОстаткиТМЦОстатки.Номенклатура [Номенклатура $Справочник.Номенклатура] | , $TabSpr.Хозяин [Хозяин $Справочник.ХозяинНом] | , TabSpr.Code Код | , ОстаткиТМЦОстатки.Склад [Склад $Справочник.Склады] | , $ОстаткиНоменклатуры.остаток as МинОст | , $ОстаткиНоменклатуры2.остаток as МаксОст | , ОстаткиТМЦОстатки.КоличествоОстаток Кол | , case when (Подзапрос.КоличествоОстаток=0) then null | else ествоОстаток) |end as Сумма |, case when (Подзапрос.КоличествоОстаток=0) then null | else ествоОстаток) | end as СуммаР |, case when (Подзапрос.КоличествоОстаток=0) then null | else ((Подзапрос.СуммаРубОстаток/Подзапрос.КоличествоОстаток)) | end as Себестоимость | |, РезервыТМЦОстатки.КоличествоОстаток КолР |, ОстаткиТМЦОстатки.КоличествоОстаток Кол | ,CASE WHEN (($ОстаткиНоменклатуры.остаток/2-ОстаткиТМЦОстатки.КоличествоОстаток)>0) Then ($ОстаткиНоменклатуры.остаток/2-ОстаткиТМЦОстатки.КоличествоОстаток) else 0 end as КолД | ,CASE WHEN (($ОстаткиНоменклатуры.остаток/2-ОстаткиТМЦОстатки.КоличествоОстаток)>0) Then (($ОстаткиНоменклатуры.остаток/2-ОстаткиТМЦОстатки.КоличествоОстаток)*(case when (Подзапрос.КоличествоОстаток=0) then null | else ((Подзапрос.СуммаРубОстаток/Подзапрос.КоличествоОстаток)) | end)) else 0 end as СуммаД //| ,CASE WHEN ((МинОст/2-Кол)>0) Then (МинОст/2-Кол)*Себестоимость else 0 end as СуммаД
|FROM $РегистрОстатки.ОстаткиТМЦ(:КонДата~,,"+ СтрокаУсловия +" | ,(Фирма,Номенклатура,Склад),) AS ОстаткиТМЦОстатки | LEFT OUTER JOIN (SELECT ПартииНаличиеОстатки.Номенклатура | , ПартииНаличиеОстатки.СуммаРубОстаток | , ПартииНаличиеОстатки.КоличествоОстаток | FROM $РегистрОстатки.ПартииНаличие(,,, | Номенклатура, | (СуммаРуб, Количество)) AS ПартииНаличиеОстатки) AS Подзапрос ON ОстаткиТМЦОстатки.Номенклатура = Подзапрос.Номенклатура |LEFT OUTER JOIN $РегистрОстатки.РезервыТМЦ(:КонДата~,,, | ( Номенклатура, Склад),) AS РезервыТМЦОстатки ON ОстаткиТМЦОстатки.Номенклатура = РезервыТМЦОстатки.Номенклатура | AND ОстаткиТМЦОстатки.Склад = РезервыТМЦОстатки.Склад | LEFT OUTER JOIN | $Справочник.Номенклатура As TabSpr ON ОстаткиТМЦОстатки.Номенклатура = TabSpr.ID $Справочник.ОстаткиНоменклатуры AS ОстаткиНоменклатуры ON (TabSpr.ID = ОстаткиНоменклатуры.PARENTEXT) | AND($ОстаткиНоменклатуры.Склад = ОстаткиТМЦОстатки.Склад) AND ($ОстаткиНоменклатуры.ВидОстатка = :Мин) | LEFT OUTER JOIN $Справочник.ОстаткиНоменклатуры AS ОстаткиНоменклатуры2 ON (TabSpr.ID = ОстаткиНоменклатуры2.PARENTEXT) | AND ($ОстаткиНоменклатуры2.Склад = ОстаткиТМЦОстатки.Склад)AND ($ОстаткиНоменклатуры2.ВидОстатка = :Макс) |Order by | $TabSpr.Хозяин, гр1,гр2,гр3,гр4, TabSpr.DESCR, ОстаткиТМЦОстатки.Склад |";
вот часть моего запроса - склад,номенклатура, себестоимость по фирме, резерв по складу. Проблема в том, что многие строки задваивабтся, затравиваются ит.д. - видимо причина в том что где то что то криво присоединяю, никак не пойму что - везде левое внешнее соединение
|