Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Запрос на вычетание значений из разных таблиц
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Не знал где создать топик про написание запросов, пользуюсь 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. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2013, 16:43 |
|
||
|
Запрос на вычетание значений из разных таблиц
|
|||
|---|---|---|---|
|
#18+
В общем случае тебе нужны: 1) PIVOT (можно самодельный на CASE -х) - для "разворота" данных из DocDetails по параметрам D и C 2) JOIN - для присоединения к Rests результата PIVOT -инга 3) Аналитика ( LEAD | LAG ) - для доступа к данным за следующую | предыдущую дату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2013, 05:58 |
|
||
|
Запрос на вычетание значений из разных таблиц
|
|||
|---|---|---|---|
|
#18+
Спасибо за подсказку. Подскажите пожалуйста как связать 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.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2013, 09:28 |
|
||
|
|

start [/forum/topic.php?fid=43&gotonew=1&tid=1601275]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
9ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 163ms |

| 0 / 0 |
