Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема В запросе ошибка,задваивает суммы (число прочтений - 1349 )
maxa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 07. Ноября 2007
В запросе ошибка,задваивает суммы
30. Апреля 2009 :: 07:37
Печать  
Задваивает, и затраиват...сумму долга видно по количеству строк в в документе, вижу что запрос не правильный , а как сделать чтобы и НДС по строкам считала и сумму долга- не могу сообразить.Помогите ,пж.
Код
Выбрать все
ТекстЗапроса = "
	|SELECT
    |    dateadd(d, $Контрагенты.ДогГлубина, CAST(LEFT((Жур.Date_Time_IDDoc),8) as DateTime)) as ДатаПлатежа
    |   ,CAST(LEFT((Жур.Date_Time_IDDoc),8) as DateTime) as Дата
	|   ,ВзаиморасчетыЕще.Клиент as [Клиент $Справочник.Контрагенты]
	|   ,$Контрагенты.ДогГлубина as [Глубина $Число]
    |   ,Жур.IDDoc as [Документ $Документ]
	|   ,Жур.IDDocDef as Документ_вид
	|   ,cast(ДокПН.$ОбщийРеквизит.Комментарий as char(50))  as [Комментарий $Строка]
	|   ,SUM(ВзаиморасчетыЕще.ДолгОстаток) as СуммаДолга
	|   ,SUM($ДокПНСтр.НДС) as [НДС $Число]
	|   ,SUM($ДокПНСтр.Всего) as [Всего $Число]
    |   ,Sum(CASE WHEN $ДокПНСтр.СтавкаНДС=:НДС10 THEN $ДокПНСтр.НДС ELSE 0 END) AS НДС10
    |   ,Sum(CASE WHEN $ДокПНСтр.СтавкаНДС=:НДС18 THEN $ДокПНСтр.НДС ELSE 0 END) AS НДС18
	|	FROM $ДокументСтроки.ПриходнаяНакладная as ДокПНСтр with (nolock)
	|	  INNER JOIN $Документ.ПриходнаяНакладная ДокПН with (nolock) ON (ДокПН.iddoc=ДокПНСтр.iddoc)
	|     INNER JOIN  $Справочник.Контрагенты as Контрагенты With (NOLOCK) ON $ДокПН.Клиент = Контрагенты.ID
	|     left JOIN  $РегистрОстатки.ВзаиморасчетыПоставщиков(:ДатаКон,,
	|		    (Фирма = :вФирма),(Клиент,КредДокумент),Долг) AS ВзаиморасчетыЕще  ON (ДокПН.iddoc=RIGHT(ВзаиморасчетыЕще.КредДокумент,9))
	|     INNER JOIN _1sjourn Жур with (nolock) ON (Жур.iddoc=ДокПНСтр.iddoc)
	|							AND (Жур.date_time_iddoc <= :ДатаКон) and (Жур.IsMark=0)
    | WHERE (Жур.iddoc in "+ТекстЗапроса2+") and (ВзаиморасчетыЕще.Клиент not in(select Val from #СписокИсключений))
	| GROUP BY dateadd(d, $Контрагенты.ДогГлубина, CAST(LEFT((Жур.Date_Time_IDDoc),8) as DateTime)),CAST(LEFT((Жур.Date_Time_IDDoc),8) as ,cast(ДокПН.$ОбщийРеквизит.Комментарий as char(50)) ";//WITH ROLLUP
 

  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: В запросе ошибка,задваивает суммы
Ответ #1 - 30. Апреля 2009 :: 08:53
Печать  
КредДокумент из $РегистрОстатки уберите и соединяйте по клиенту
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: В запросе ошибка,задваивает суммы
Ответ #2 - 30. Апреля 2009 :: 09:38
Печать  
прошу прощения, не то написал..не проснулся еще в 12 часов Смех
Код
Выбрать все
ТекстЗапроса = "
	|SELECT
    |    dateadd(d, $Контрагенты.ДогГлубина, CAST(LEFT((Жур.Date_Time_IDDoc),8) as DateTime)) as ДатаПлатежа
    |   ,CAST(LEFT((Жур.Date_Time_IDDoc),8) as DateTime) as Дата
	|   ,ВзаиморасчетыЕще.Клиент as [Клиент $Справочник.Контрагенты]
	|   ,$Контрагенты.ДогГлубина as [Глубина $Число]
    |   ,Жур.IDDoc as [Документ $Документ.ПриходнаяНакладная]
	|   ,cast(ДокПН.$ОбщийРеквизит.Комментарий as char(50))  as [Комментарий $Строка]
	|   ,ВзаиморасчетыЕще.ДолгОстаток as СуммаДолга
	|   ,ДокПНСтр.НДС as [НДС $Число]
	|   ,ДокПНСтр.Всего as [Всего $Число]
    |   ,ДокПНСтр.НДС10 AS НДС10
    |   ,ДокПНСтр.НДС18 AS НДС18
	|FROM
	|	  $Документ.ПриходнаяНакладная ДокПН with (nolock) ON (ДокПН.iddoc=ДокПНСтр.iddoc)
	|inner join
	|(
 	|  select
  	|    iddoc
	|    ,SUM($ДокПНСтр.НДС) as [НДС ]
	|    ,SUM($ДокПНСтр.Всего) as [Всего]
  	|    ,Sum(CASE WHEN $ДокПНСтр.СтавкаНДС=:НДС18 THEN $ДокПНСтр.НДС ELSE 0 END) AS НДС18
  	|    ,Sum(CASE WHEN $ДокПНСтр.СтавкаНДС=:НДС10 THEN $ДокПНСтр.НДС ELSE 0 END) AS НДС10
 	|  from
  	|    $ДокументСтроки.ПриходнаяНакладная as ДокПНСтр (nolock)
  	|  group by
   	|    iddoc
	| )	ДокПНСтр on ДокПНСтр.iddoc = ДокПН.iddoc
	|INNER JOIN
	|   $Справочник.Контрагенты as Контрагенты With (NOLOCK) ON $ДокПН.Клиент = Контрагенты.ID
	|left JOIN  $РегистрОстатки.ВзаиморасчетыПоставщиков(:ДатаКон,,
	|		    (Фирма = :вФирма),(Клиент,КредДокумент),Долг) AS ВзаиморасчетыЕще  ON (ДокПН.iddoc=RIGHT(ВзаиморасчетыЕще.КредДокумент,9))
	|INNER JOIN _1sjourn Жур with (nolock) ON (Жур.iddoc=ДокПНСтр.iddoc)
	|							AND (Жур.date_time_iddoc <= :ДатаКон) and (Жур.IsMark=0)
    |WHERE (Жур.iddoc in "+ТекстЗапроса2+") and (ВзаиморасчетыЕще.Клиент not in(select Val from #СписокИсключений))
    |"; 


  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать