Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема отчет о состоянии заявки (ТИС 9.2) (число прочтений - 3147 )
kjk
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Местоположение: Санкт-Петербург
Зарегистрирован: 29. Марта 2007
Пол: Мужской
отчет о состоянии заявки (ТИС 9.2)
20. Сентября 2007 :: 13:50
Печать  
Пишу замену отчету о состоянии заявки от покупателя. Привожу код запроса

[color=#003366]            |SELECT ЗаявкиОстаткиОбороты.Номенклатура [Номенклатура $Справочник.Номенклатура]
           |      , Sum(ЗаявкиОстаткиОбороты.КоличествоРасходПриход) Выписано
           |      , Sum(ЗаявкиОстаткиОбороты.КоличествоРасходРасход) Снято
           |      , Sum(ЗаявкиОстаткиОбороты.КоличествоРасходКонечныйОстаток) Осталось
           |      , Sum(РезервыТМЦОстатки.КоличествоОстаток) ВРезерве
           |      , Sum(ОстаткиТМЦОстатки.КоличествоОстаток) НаСкладе
           |      , Sum(ВсегоРезервыТМЦОстатки.КоличествоОстаток) Резервов
           |      , ) Свободно
           |      , Sum(ЗаказыЗаявкиОстатки.КоличествоОстаток) Заказано
           |FROM $РегистрОстаткиОбороты.Заявки(:ДатаНачала,:ДатаКонца~,,,,
           |            (ЗаявкаПокупателя = :ВДокумент),
           |            (Номенклатура, ЗаявкаПокупателя),
           |            КоличествоРасход) AS ЗаявкиОстаткиОбороты
           |      LEFT OUTER JOIN $РегистрОстатки.РезервыТМЦ(:ДатаКонца~,,,
           |            (Номенклатура, ЗаявкаПокупателя),) AS ВсегоРезервыТМЦОстатки ON ЗаявкиОстаткиОбороты.Номенклатура = ВсегоРезервыТМЦОстатки.Номенклатура
           |      LEFT OUTER JOIN $РегистрОстатки.РезервыТМЦ(:ДатаКонца~,,,
           |            (Номенклатура, ЗаявкаПокупателя),) AS РезервыТМЦОстатки ON ЗаявкиОстаткиОбороты.ЗаявкаПокупателя = РезервыТМЦОстатки.ЗаявкаПокупателя AND ЗаявкиОстаткиОбороты.Номенклатура = РезервыТМЦОстатки.Номенклатура
           |      LEFT OUTER JOIN $РегистрОстатки.ОстаткиТМЦ(:ДатаКонца~,,,
           |            Номенклатура,) AS ОстаткиТМЦОстатки ON ЗаявкиОстаткиОбороты.Номенклатура = ОстаткиТМЦОстатки.Номенклатура
           |      LEFT OUTER JOIN $РегистрОстатки.ЗаказыЗаявки(:ДатаКонца~,,,
           |            (Номенклатура, ЗаявкаПокупателя),) AS ЗаказыЗаявкиОстатки ON ЗаявкиОстаткиОбороты.ЗаявкаПокупателя = ЗаказыЗаявкиОстатки.ЗаявкаПокупателя AND ЗаявкиОстаткиОбороты.Номенклатура = ЗаказыЗаявкиОстатки.Номенклатура
           |GROUP BY ЗаявкиОстаткиОбороты.Номенклатура
           |";[/color]
выдает неправильный остаток по складу, не понимаю почему.
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: отчет о состоянии заявки (ТИС 9.2)
Ответ #1 - 20. Сентября 2007 :: 18:49
Печать  
Мне кажется что надо попробовать:

селект (
остатки
union all
резервы)

Теоретически резерв может увести свободный остаток в минус и т.п.

И зачем там 2 резерва? зачем ЗаказыЗаявки?
В отчете вапче разобрался прежде чем переделывать?
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: отчет о состоянии заявки (ТИС 9.2)
Ответ #2 - 20. Сентября 2007 :: 19:38
Печать  
1. Приведи запрос к читабельному виду
Код
Выбрать все
|SELECT ЗаявкиОстаткиОбороты.Номенклатура [Номенклатура $Справочник.Номенклатура]
|	, Sum(ЗаявкиОстаткиОбороты.КоличествоРасходПриход) Выписано
|	, Sum(ЗаявкиОстаткиОбороты.КоличествоРасходРасход) Снято
|	, Sum(ЗаявкиОстаткиОбороты.КоличествоРасходКонечныйОстаток) Осталось
|	, Sum(РезервыТМЦОстатки.КоличествоОстаток) ВРезерве
|	, Sum(ОстаткиТМЦОстатки.КоличествоОстаток) НаСкладе
|	, Sum(ВсегоРезервыТМЦОстатки.КоличествоОстаток) Резервов
|	, ) Свободно
|	, Sum(ЗаказыЗаявкиОстатки.КоличествоОстаток) Заказано
|
|FROM $РегистрОстаткиОбороты.Заявки(:ДатаНачала,:ДатаКонца~,,,,(ЗаявкаПокупателя = :ВДокумент), (Номенклатура, ЗаявкаПокупателя), КоличествоРасход)
|		 AS ЗаявкиОстаткиОбороты
|
|LEFT OUTER JOIN $РегистрОстатки.РезервыТМЦ(:ДатаКонца~,,, (Номенклатура, ЗаявкаПокупателя),) AS ВсегоРезервыТМЦОстатки
|		 ON ЗаявкиОстаткиОбороты.Номенклатура = ВсегоРезервыТМЦОстатки.Номенклатура
|
|LEFT OUTER JOIN $РегистрОстатки.РезервыТМЦ(:ДатаКонца~,,,(Номенклатура, ЗаявкаПокупателя),) AS РезервыТМЦОстатки
|		 ON ЗаявкиОстаткиОбороты.ЗаявкаПокупателя = РезервыТМЦОстатки.ЗаявкаПокупателя
|		    AND ЗаявкиОстаткиОбороты.Номенклатура = РезервыТМЦОстатки.Номенклатура
|
|LEFT OUTER JOIN $РегистрОстатки.ОстаткиТМЦ(:ДатаКонца~,,, Номенклатура,) AS ОстаткиТМЦОстатки
|		 ON ЗаявкиОстаткиОбороты.Номенклатура = ОстаткиТМЦОстатки.Номенклатура
|
|LEFT OUTER JOIN $РегистрОстатки.ЗаказыЗаявки(:ДатаКонца~,,, (Номенклатура, ЗаявкаПокупателя),) AS ЗаказыЗаявкиОстатки
|		ON ЗаявкиОстаткиОбороты.ЗаявкаПокупателя = ЗаказыЗаявкиОстатки.ЗаявкаПокупателя
|		   AND ЗаявкиОстаткиОбороты.Номенклатура = ЗаказыЗаявкиОстатки.Номенклатура
|
|GROUP BY ЗаявкиОстаткиОбороты.Номенклатура 



2. Если в первой таблице группируешь по Номенклатура, ЗаявкаПокупателя и присоединяшь
остатки сгруппированные по Номенклатура - то что ожидаешь получить в остатках ?

3.
Код
Выбрать все
ОстаткиТМЦОстатки.КоличествоОстаток-ВсегоРезервыТМЦОстатки.КоличествоОстаток 


Есть стопроцентная уверенность что NULL быть не может?
  
Наверх
 
IP записан
 
kjk
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Местоположение: Санкт-Петербург
Зарегистрирован: 29. Марта 2007
Пол: Мужской
Re: отчет о состоянии заявки (ТИС 9.2)
Ответ #3 - 21. Сентября 2007 :: 08:43
Печать  
К вопросу зачем нужны два раза резервы:
Первый раз выбираю все резервы по номенклатуре,
второй, только резервы по заявке.
К вопросу о группировке: я не делаю группировку по завке
  
Наверх
 
IP записан
 
kjk
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Местоположение: Санкт-Петербург
Зарегистрирован: 29. Марта 2007
Пол: Мужской
Re: отчет о состоянии заявки (ТИС 9.2)
Ответ #4 - 21. Сентября 2007 :: 10:17
Печать  
1) Ответом должна быть тз примерно след. вида
кладе-Заказано
при этом СвободныйОстатокНаСкладе=остаток - резерв_по_позиции

2)Если запрос изменить см.ниже то остаток вычисляется правильно.

|SELECT ЗаявкиОстаткиОбороты.Номенклатура [Номенклатура $Справочник.Номенклатура]
|      , Sum(ЗаявкиОстаткиОбороты.КоличествоРасходПриход) Выписано
|      , Sum(ЗаявкиОстаткиОбороты.КоличествоРасходРасход) Снято
|      , Sum(ЗаявкиОстаткиОбороты.КоличествоРасходКонечныйОстаток) Осталось
|      , Sum(РезервыТМЦОстатки.КоличествоОстаток) ВРезерве
|      , Sum(ОстаткиТМЦОстатки.КоличествоОстаток) НаСкладе
//|      , Sum(ВсегоРезервыТМЦОстатки.КоличествоОстаток) Резервов
//|      , ) Свободно
|      , Sum(ЗаказыЗаявкиОстатки.КоличествоОстаток) Заказано
|
|FROM $РегистрОстаткиОбороты.Заявки(:ДатаНачала,:ДатаКонца~,,,,(ЗаявкаПокупателя = :ВДокумент), (Номенклатура, ЗаявкаПокупателя), КоличествоРасход)
|             AS ЗаявкиОстаткиОбороты

//|LEFT OUTER JOIN $РегистрОстатки.РезервыТМЦ(:ДатаКонца~,,, (Номенклатура, ЗаявкаПокупателя),) AS ВсегоРезервыТМЦОстатки
//|             ON ЗаявкиОстаткиОбороты.Номенклатура = ВсегоРезервыТМЦОстатки.Номенклатура
//|   
|LEFT OUTER JOIN $РегистрОстатки.РезервыТМЦ(:ДатаКонца~,,,(Номенклатура, ЗаявкаПокупателя),) AS РезервыТМЦОстатки
|             ON ЗаявкиОстаткиОбороты.ЗаявкаПокупателя = РезервыТМЦОстатки.ЗаявкаПокупателя
|                AND ЗаявкиОстаткиОбороты.Номенклатура = РезервыТМЦОстатки.Номенклатура
|   
|LEFT OUTER JOIN $РегистрОстатки.ОстаткиТМЦ(:ДатаКонца~,,, Номенклатура,) AS ОстаткиТМЦОстатки
|             ON ЗаявкиОстаткиОбороты.Номенклатура = ОстаткиТМЦОстатки.Номенклатура
|   
|LEFT OUTER JOIN $РегистрОстатки.ЗаказыЗаявки(:ДатаКонца~,,, (Номенклатура, ЗаявкаПокупателя),) AS ЗаказыЗаявкиОстатки
|            ON ЗаявкиОстаткиОбороты.ЗаявкаПокупателя = ЗаказыЗаявкиОстатки.ЗаявкаПокупателя
|               AND ЗаявкиОстаткиОбороты.Номенклатура = ЗаказыЗаявкиОстатки.Номенклатура
|
|GROUP BY ЗаявкиОстаткиОбороты.Номенклатура


  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: отчет о состоянии заявки (ТИС 9.2)
Ответ #5 - 21. Сентября 2007 :: 11:03
Печать  
Ну уж не знаю как можно еще подробней Улыбка
Буквально : ЗаявкаПокупателя из запроса убери везде, где встречается, кроме отбора.
  
Наверх
 
IP записан
 
kjk
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Местоположение: Санкт-Петербург
Зарегистрирован: 29. Марта 2007
Пол: Мужской
Re: отчет о состоянии заявки (ТИС 9.2)
Ответ #6 - 21. Сентября 2007 :: 11:24
Печать  
Спасибо kiruha, всё заработало.
привожу правильный текст запроса.

|SELECT ЗаявкиОстаткиОбороты.Номенклатура [Номенклатура $Справочник.Номенклатура]
|      , Sum(ЗаявкиОстаткиОбороты.КоличествоРасходПриход) Выписано
|      , Sum(ЗаявкиОстаткиОбороты.КоличествоРасходРасход) Снято
|      , Sum(ЗаявкиОстаткиОбороты.КоличествоРасходКонечныйОстаток) Осталось
|      , Sum(РезервыТМЦОстатки.КоличествоОстаток) ВРезерве
|      , Sum(ОстаткиТМЦОстатки.КоличествоОстаток) НаСкладе
|      , Sum(ВсегоРезервыТМЦОстатки.КоличествоОстаток) Резервов
|      , ) Свободно
|      , Sum(ЗаказыЗаявкиОстатки.КоличествоОстаток) Заказано
|FROM $РегистрОстаткиОбороты.Заявки(:ДатаНачала,:ДатаКонца~,,,,(ЗаявкаПокупателя = :ВДокумент),Номенклатура, ЗаявкаПокупателя),КоличествоРасход) AS ЗаявкиОстаткиОбороты
|
|LEFT OUTER JOIN $РегистрОстатки.РезервыТМЦ(:ДатаКонца~,,,(Номенклатура),) AS ВсегоРезервыТМЦОстатки ON ЗаявкиОстаткиОбороты.Номенклатура = ВсегоРезервыТМЦОстатки.Номенклатура
|
|LEFT OUTER JOIN $РегистрОстатки.РезервыТМЦ(:ДатаКонца~,,,(Номенклатура, ЗаявкаПокупателя),) AS РезервыТМЦОстатки ON ЗаявкиОстаткиОбороты.ЗаявкаПокупателя = РезервыТМЦОстатки.ЗаявкаПокупателя AND ЗаявкиОстаткиОбороты.Номенклатура = РезервыТМЦОстатки.Номенклатура
|
|LEFT OUTER JOIN $РегистрОстатки.ОстаткиТМЦ(:ДатаКонца~,,,Номенклатура,) AS ОстаткиТМЦОстатки ON ЗаявкиОстаткиОбороты.Номенклатура = ОстаткиТМЦОстатки.Номенклатура
|
|LEFT OUTER JOIN $РегистрОстатки.ЗаказыЗаявки(:ДатаКонца~,,,(Номенклатура, ЗаявкаПокупателя),) AS ЗаказыЗаявкиОстатки ON ЗаявкиОстаткиОбороты.ЗаявкаПокупателя = ЗаказыЗаявкиОстатки.ЗаявкаПокупателя AND ЗаявкиОстаткиОбороты.Номенклатура = ЗаказыЗаявкиОстатки.Номенклатура
|
|GROUP BY ЗаявкиОстаткиОбороты.Номенклатура
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: отчет о состоянии заявки (ТИС 9.2)
Ответ #7 - 21. Сентября 2007 :: 11:29
Печать  
(Номенклатура, ЗаявкаПокупателя)

отсюда тоже
  
Наверх
 
IP записан
 
kjk
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Местоположение: Санкт-Петербург
Зарегистрирован: 29. Марта 2007
Пол: Мужской
Re: отчет о состоянии заявки (ТИС 9.2)
Ответ #8 - 21. Сентября 2007 :: 11:58
Печать  
1) Не понял откуда еще, помоему больше нигде исправлять не надо.
2) А как бы мне еще определить сколько снято по заявке документами вида ЗаявкаПокупателя и Отмена заявок
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать