|
Оле-Лукойе
Сообщений: 3437 |
 | |
SQL запрос Добавлено: 28 май 04 13:11 |
Есть таблица ID Amount Date 1 +10 01/01 1 -3 02/01 2 +5 01/01 2 -6 03/01 Результат: 1 +7 01/01 2 -1 03/01 Какой SQL запрос нужен для получения результата? |
| |
|
|
|
|
На: SQL запрос Добавлено: 28 май 04 13:24 |
Нечто похожее на select id, sum(Amount) from... group by id |
| |
Оле-Лукойе
Сообщений: 3437 |
 | |
На: SQL запрос Добавлено: 28 май 04 13:42 |
а дату как подключить? в группировке она не сумирует если дата есть. |
| |
|
На: SQL запрос Добавлено: 28 май 04 13:51 |
select id, sum(amount), min(date), max(date) from table group by id
хотя в резльтате странное сочетание дат.
Почему в первом варианте оно 01/01, а во втором 03/01? |
| |
|
На: SQL запрос Добавлено: 28 май 04 13:53 |
Я вот тоже подумал что с датой ошибка. |
| |
Оле-Лукойе
Сообщений: 3437 |
 | |
На: SQL запрос Добавлено: 31 май 04 13:23 |
Этот вариант не проходит, так как сумма с минусом может быть не последней. Вариант select id,sum(amaunt), if(sum(amaunt)>0,min(date),max(date)) тоже не катит
 |
| |
Lynx
Сообщений: 2197 |
 | |
На: SQL запрос Добавлено: 31 май 04 14:23 |
Делай с подзапросом, какой сервер БД? |
| |
ACampball
Сообщений: 572 |
 | |
На: SQL запрос Добавлено: 31 май 04 15:11 |
Давайте начнем с того, что отпределимся что за БД используется. Постановка задачи бы тоже не помешала бы. |
| |
Оле-Лукойе
Сообщений: 3437 |
 | |
На: SQL запрос Добавлено: 31 май 04 22:03 |
Pervasive SQL Server 2000 Псостановка задачи Имеется таблица содержащая Id, amount, date amount - положительная или отрицательная сумма. в начале всегда положительная, запись содержащаяя id и отрицательный amount закрывает сумму по id. Необходимо узнать результат закрытия по id если сумма осталось больше нуля то узнать дату появления id с плюсом, id оставшуюся сумму после сложения. Если сумма вресультате стала меньше нуля то надо узнать все сложение по id, сумму и дату когда сумма стала меньше нуля. Вот так путанно выглядит постановка задачи |
| |
ACampball
Сообщений: 572 |
 | |
На: SQL запрос Добавлено: 1 июн 04 08:41 |
Простым запросом не обойтись, т.к. вам нужно выяснить дату, когда сумма стала больше 0 или меньше. Т.е. необходимо последовательное суммирование и определение знака суммы, в зависимости от результата - дата. И сразу же вопрос - если в течении периода происходит неоднократное изменение знака суммы, то какую дату брать ? |
| |
lexa
Сообщений: 4994 |
 | |
На: SQL запрос Добавлено: 1 июн 04 10:56 |
если сумма осталось больше...Если сумма стала меньше... |
|
лучше хранимую процедуру писать
CREATE PROCEDURE [dbo].[Calculate] ( ) AS BEGIN SELECT ... IF ... ELSE ... END |
| |
Стр.1 (1) Показывать по
постов на странице |
|
|