powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Почему при обертывании в функцию данные разные
3 сообщений из 3, страница 1 из 1
Почему при обертывании в функцию данные разные
    #39995115
TanyaBlaginina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос
select cd.cnt, ab.cnt from
(select count(a.A_OUID) as cnt from NTF_MESSAGE a /*всего отправлено смс*/
join NTF_MSG_TYPES_LINK b on b.ATTRA=a.A_OUID
where b.ATTRb=10322418 and a.a_createdate>='2020-08-10 15:00:01.658' and a.a_createdate<='2020-08-12 15:00:00.382' )cd

join
(select count(a.A_OUID) as cnt from NTF_MESSAGE a /*всего доставлено смс*/
join NTF_MSG_TYPES_LINK b on b.ATTRA=a.A_OUID
join NTF_MESSAGE_LOG c on c.a_message=a.A_OUID
where b.ATTRb=10322418 and a.a_createdate>='2020-08-10 15:00:01.658' and a.a_createdate<='2020-08-12 15:00:00.382' and c.a_createdate>='2020-08-10 15:00:01.658' and c.a_createdate<='2020-08-12 15:00:00.382' and c.a_success is true) ab on 1=1

При обертывании в функцию

CREATE OR REPLACE FUNCTION getMessages_sms(begindate date,
enddate date) RETURNS table("outsms" bigint, "delivsms" bigint)
LANGUAGE plpgsql
AS
$body$
begin
RETURN QUERY
select outsms.cnt as "outsms",
delivsms.cnt as "delivsms"
from

(select count(a.A_OUID) as cnt from NTF_MESSAGE a /*всего отправлено смс*/
join NTF_MSG_TYPES_LINK b on b.ATTRA=a.A_OUID
where b.ATTRb=10322418 and a.a_createdate>=begindate and a.a_createdate<=enddate ) outsms

join

(select count(a.A_OUID) as cnt from NTF_MESSAGE a /*всего доставлено смс*/
join NTF_MSG_TYPES_LINK b on b.ATTRA=a.A_OUID
join NTF_MESSAGE_LOG c on c.a_message=a.A_OUID
where b.ATTRb=10322418 and a.a_createdate>=begindate and a.a_createdate<=enddate and c.a_createdate>=begindate and c.a_createdate<=enddate and c.a_success is true) delivsms on 1=1


;

end;
$body$;

При вызове с теми же параметрами select * from getMessages_sms('2020-08-10 15:00:01.658','2020-08-12 15:00:00.382')

Данные очень сильно отличаются, в чем может быть причина?
...
Рейтинг: 0 / 0
Почему при обертывании в функцию данные разные
    #39995118
fte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TanyaBlaginina,

В определении функции begindate,enddate объявлены c типом date , замените на timestamp .
...
Рейтинг: 0 / 0
Почему при обертывании в функцию данные разные
    #39995211
TanyaBlaginina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fte,

Спасибо, помогло.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Почему при обертывании в функцию данные разные
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]