|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.03.2019, 04:21 | #1 |
Новичок
Джуниор
Регистрация: 15.03.2019
Сообщений: 4
|
Выборка данных
Добрый день уважаемые посетители форума.
Нужен Ваш совет в написании выборки. Есть таблица приход, со столбцами: id = id клиента внесшего деньги pay_id = id платежа summ = сумма платежа id pay_id summ ------------------------- 1 1 30 1 2 -30 1 3 15 ------------------------- 2 4 15 2 5 15 2 6 -15 ------------------------- 3 7 33 3 8 -33 3 9 77 Задача такова, нужно вывести id тех внесенных сумм, значение которых не равно отрицательным (группируем по клиент id). При этом (см. на клиента с id=2), учесть то, что суммы могут быть одинаковыми (15 = abs(-15)). Результат должен быть таким: id pay_id summ ------------------------- 1 3 15 ------------------------- 2 4 15 ------------------------- 3 9 77 Моих знаний в select пока недостаточно, чтобы найти решение. Поэтому я буду весьма признателен, если у Вас получится мне помочь. |
15.03.2019, 08:47 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А чем 2 4 15 лучше 2 5 15?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
15.03.2019, 17:21 | #3 |
Новичок
Джуниор
Регистрация: 15.03.2019
Сообщений: 4
|
Лучше тем, что 2 4 15 на данный момент имеются в наличии, а 2 5 15 - были выведены платежом 2 6 -15.
|
15.03.2019, 17:31 | #4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
может как раз 4 15 выведены платежом 6 -15, а 5 15 как раз и есть в данный момент в наличии? и Вы не допускаете, что может быть три суммы по +5 и одна -15 ? или вообще три суммы по +7 и одна -15 ? |
|
16.03.2019, 11:01 | #5 | |
Новичок
Джуниор
Регистрация: 15.03.2019
Сообщений: 4
|
Лучше тем, что 2 4 15 на данный момент имеются в наличии, а 2 5 15 - были выведены платежом 2 6 -15.
Цитата:
"может как раз 4 15 выведены платежом 6 -15, а 5 15 как раз и есть в данный момент в наличии?" - такое может быть. Выборка должна исключить либо эту пару: 2 5 15 2 6 -15 Либо эту: 2 4 15 2 6 -15 И оставить либо 2 5 15 либо 2 4 15. "и Вы не допускаете, что может быть три суммы по +5 и одна -15 ? или вообще три суммы по +7 и одна -15 ?" Такого в существующей схеме данных быть не может, при пополнении на определенную сумму платеж может выводиться исключительно той же суммой с отрицательным значением. То есть, если будет три платежа +5, то и вывести их можно тремя платежами -5. |
|
16.03.2019, 12:09 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
В сиквеле по приведенным данным многоэтажный запрос можно сделать. Но если добавить еще пару строчек типа 2 10 -15 и 2 11 15, то все рухнет и придется цикл писать с курсорами. Сомнительно что и CTE поможет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
16.03.2019, 18:09 | #7 |
Новичок
Джуниор
Регистрация: 15.03.2019
Сообщений: 4
|
А каким образом можно реализовать цикл с курсорами в таком случае?
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выборка данных | nVz | БД в Delphi | 9 | 05.01.2013 16:40 |
выборка из данных | Артл | Microsoft Office Excel | 4 | 25.11.2011 20:05 |
Выборка данных в БД (ADO) | Makoto2005 | БД в Delphi | 0 | 01.06.2010 13:38 |
Выборка данных | segail | Microsoft Office Excel | 4 | 08.02.2010 16:37 |
Выборка данных | ADRENALIN86 | Microsoft Office Excel | 1 | 13.08.2009 15:51 |