• Ласкаво просимо на Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата.
 

Ошибка при подключении отчёта

Автор Dikiy777, Лютий 06, 2018, 18:14:42

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

Dikiy777


marpool

SELECT
cast(c.fio as varchar(500)) as fio,  --1
cast(
CASE       
WHEN (tm.doc_type_id IN (1, 18, 6, 4, 5)) THEN tm.to_firma_id     
ELSE tm.from_firma_id       
END
as integer) as client_id      --2
,cast(
-SUM(
CASE 
WHEN (tm.mdate <= '#дата_по#' AND tm.doc_type_id IN (1, 18, 6, 4, 5)) THEN (-1)*(tm.#валюта_преф#from_suma+tm.#валюта_преф#suma_pdv) 
WHEN (tm.mdate <= '#дата_по#' AND tm.doc_type_id IN (3, 16, 12, 8)) THEN tm.#валюта_преф#from_suma+tm.#валюта_преф#suma_pdv 
ELSE 0       
END
) --3
as double precision) as suma_zal
-----------------------------
,cast (0 as integer) as doc_num --4
,cast (0 as integer) as doc_mark_type --5
,cast ('' as varchar (30)) as nu --6
,cast ('31.12.9999' as date) date_dok --7
,cast (0 as double precision) as cena_valute  --8
FROM       
  tovar_move tm       
    LEFT JOIN doc_types dt ON (tm.doc_type_id = dt.num),   
  client c
WHERE     
c.visible = 1 AND   
tm.curr_type = #валюта_№# AND   
#if #клиент_группа_№# = -1 #then
#else 
c.tip = #клиент_группа_№# AND
#endif 
tm.doc_type_id in (1,18,3,6,12,16,8,4,5) AND   
tm.mdate <='#дата_по#'
AND
CASE       
WHEN (tm.doc_type_id IN (1, 18, 6, 4, 5)) THEN tm.from_firma_id   
ELSE tm.to_firma_id   
END = #активная_фирма_№#
AND   
CASE       
WHEN (tm.doc_type_id IN (1, 18, 6, 4, 5)) THEN tm.to_firma_id       
ELSE tm.from_firma_id       
END = c.num 
#if #клиент_№# = 0 #then
#else
and C.num = #клиент_№#
#endif

GROUP BY 
1,2,4,5,6,7,8
HAVING 
(round (
SUM(
CASE 
WHEN (tm.mdate <=   '#дата_по#' AND tm.doc_type_id IN (1, 18, 6, 4, 5)) THEN (-1)*(tm.#валюта_преф#from_suma+tm.#валюта_преф#suma_pdv) 
WHEN (tm.mdate <= '#дата_по#' AND tm.doc_type_id IN (3, 16, 12, 8)) THEN tm.#валюта_преф#from_suma+tm.#валюта_преф#suma_pdv   
ELSE 0       
END
)
,5
) != 0) 

union all

SELECT
cast( c.fio as varchar(500)) as fio, 
cast( c.num as integer) AS client_id,     
cast(0 as double precision) AS suma_zal  --3
-----------------------------
,cast(p.num as integer) as doc_num --4
,cast( p.doc_mark_type as integer) as doc_mark_type
,cast( p.nu as varchar(30)) as nu
,cast( p.date_dok as date) as date_dok --8
,cast(  p.curr_cena_pdv  as double precision) as cena_valute  --9
FROM       
client c inner join  vnakl p  on (c.num=p.client_id)
WHERE     
c.visible = 1
#if #клиент_группа_№# = -1 #then
#else 
and c.tip = #клиент_группа_№#
#endif
AND p.Firma_id = #активная_фирма_№#
AND p.curr_type=#валюта_№#
and p.date_dok <= '#дата_по#'
#if #клиент_№# = 0 #then
#else
and C.num = #клиент_№#
#endif
ORDER BY     
1,7 desc 

admin

Цитата: Dikiy777 від Лютий 06, 2018, 18:14:42
Не могу установить отчет
https://www.softbalance.com.ua/forum/index.php/topic,2307.msg21761.html#msg21761
Выдает ошибку

помогите!!!

Из лога истории обновлений:
ЦитатаУкрСклад 6.33 (17.05.2016)
--------------------------------------------------------
...
- Отключена UDF библиотека tbudf.dll, замена функций на стандартные STRLEN -> CHAR_LENGTH, SUBSTR -> SUBSTRING, UDF_ROUNDTO -> ROUND.
...

Dikiy777

Спасибо! Ушли предыдущие ошибки ))), зато появилась новая ((. И отчёт ни в какую не работает. На форуме не нашёл решения подобной ошибки. Опять прошу помочь, а то никак не могу въехать.