Все темы  | Новая тема | Настройки форума
Поиск: 
 Автор Тема: SQL запрос
Оле-Лукойе
Сообщений: 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 запрос нужен для получения результата?



[Ответ][Цитата]
 

 
 
гость
193.19.71.44
На: SQL запрос  
Добавлено: 28 май 04 13:24
Нечто похожее на select id, sum(Amount) from... group by id



[Ответ][Цитата]
 
Оле-Лукойе
Сообщений: 3437 
На: SQL запрос  
Добавлено: 28 май 04 13:42
а дату как подключить? в группировке она не сумирует если дата есть.



[Ответ][Цитата]
 
гость
217.66.145.5
На: SQL запрос  
Добавлено: 28 май 04 13:51
select id, sum(amount), min(date), max(date)
from table
group by id

хотя в резльтате странное сочетание дат.

Почему в первом варианте оно 01/01, а во втором 03/01?



[Ответ][Цитата]
 
гость
193.19.71.44
На: 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) Показывать по
постов на странице