powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Запрос на вычетание значений из разных таблиц
3 сообщений из 3, страница 1 из 1
Запрос на вычетание значений из разных таблиц
    #38453355
chiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Не знал где создать топик про написание запросов, пользуюсь DB2 - поэтому написал тут.

Проблема следующая:

нужен запрос типа:

select c.ID, c.Name, a.Account, d.Date
from Customer c, Accounts a, Rests d
where (select Rest
from Rests
where Date ='05.11.2013') -
(select sum(Sum)
from DocDetails
where DebitCredit = 'D'
and Date = '05.11.2013' ) -
(select sum(Sum)
from DocDetails
where DebitCredit = 'C'
and Date = '05.11.2013' ) <>
(select Rest
from Rests
where Date = '04.11.2013')

это мой кривой запрос

но смысл таков - Из значения Rest от 05.11.2013 из таблицы Rests, вычесть сумму значений Sum за 05.11.2013 из таблицы DocDetails с параметром D, затем снова вычесть сумму значений Sum за 05.11.2013 из таблицы DocDetails с параметром C и сравнить(если не равны то включить в выборку) полученный результат с значением Rest от 04.11.2013 из таблицы Rests. И все это связанно между собой AccountID который есть в таблицах Rests и DocDetails.

Спасибо!
...
Рейтинг: 0 / 0
Запрос на вычетание значений из разных таблиц
    #38453911
В общем случае тебе нужны:
1) PIVOT (можно самодельный на CASE -х) - для "разворота" данных из DocDetails по параметрам D и C
2) JOIN - для присоединения к Rests результата PIVOT -инга
3) Аналитика ( LEAD | LAG ) - для доступа к данным за следующую | предыдущую дату.
...
Рейтинг: 0 / 0
Запрос на вычетание значений из разных таблиц
    #38453973
chiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за подсказку.

Подскажите пожалуйста как связать CASE с WHILE

Например

WHERE A+
CASE
WHEN b=1 THEN C
WHEN b=2 THEN -C
END
=1

т.е. нужно посмотреть все значения b и делать A+C или A-C в зависимости от значения b в цикле.
У меня получается так - нашел b=1 сделал A+C и сравнил с 1..
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Запрос на вычетание значений из разных таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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