Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Базы данных > SQL
Перезагрузить страницу UPDATE таблицы на основе содержащихся в ней же данных
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Jonano Jonano вне форума
Специалист
 
Аватар для Jonano
 
Сообщений: 3,541
Сказал(а) спасибо: 2
Поблагодарили 14 раз(а) в 14 сообщениях
Регистрация: 19.04.2005
По умолчанию 30.04.2009, 12:26

Здравствуйте. У меня такая проблема, имеется таблица, временная
Код:
DECLARE @Balance TABLE
(Date datetime, 
Income money,
Outcome money,
Balance money)
Отдельно в ней заполняются данными Date, Income и Outcome, например
Код:
Data             Income             Outcome              Balance                   
2008-09-08        NULL                50000.00             NULL
2008-12-17        NULL                70000.00              NULL
2009-01-18        500000.00            NULL                NULL
2009-02-08        NULL                30000.00              NULL
2009-04-10        700000.00            45000.00              NULL
Не могу решить задачу подсчёта значений поля Balance, оно равно сумме приходов (Income) и расходов (-Outcome) за текущую дату и все предыдущие. По сути, надо пробежаться по всем записям и посчитать, но как, не могу понять.
Код:
Update @Balance 
SET Balance = (SELECT sum(Income)-sum(Outcome) FROM @Balance AS B1 WHERE B1.Date <= Date)
Так ничего не выходит

Если это важно, СУБД MS SQL Server 2005.
Заранее спасибо.

PS: данные в столбце Balance не избыточны.
Ответить с цитированием
  (#2 (permalink)) Старый
Jonano Jonano вне форума
Специалист
 
Аватар для Jonano
 
Сообщений: 3,541
Сказал(а) спасибо: 2
Поблагодарили 14 раз(а) в 14 сообщениях
Регистрация: 19.04.2005
По умолчанию 30.04.2009, 14:09

Сделал, хотя наверно, можно и проще...
Код:
DECLARE @CurDate datetime
DECLARE DataCursor CURSOR
    FOR SELECT Date FROM @Balance
OPEN DataCursor
FETCH NEXT FROM DataCursor 
INTO @CurDate
WHILE @@FETCH_STATUS = 0
BEGIN

    UPDATE @Balance 
    SET Balance = (SELECT COALESCE(sum(Income), 0) - COALESCE(sum(Outcome), 0)  FROM @Balance AS B1 WHERE B1.Date <= @CurDate)
    WHERE Date = @CurDate

FETCH NEXT FROM DataCursor 
    INTO @CurDate
END 
CLOSE DataCursor
DEALLOCATE DataCursor
Ответить с цитированием
  (#3 (permalink)) Старый
Philin Philin вне форума
Member
 
Сообщений: 75
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 30.10.2004
По умолчанию 21.05.2009, 11:58

Код:
UPDATE B SET 
  Balance = (SELECT sum(ISNULL(B1.Income,0) -ISNULL(B1.Outcome,0)) FROM @Balance AS B1 WHERE B1.Date <= B.Date)
FROM @Balance B
??
Ответить с цитированием
  (#4 (permalink)) Старый
Jonano Jonano вне форума
Специалист
 
Аватар для Jonano
 
Сообщений: 3,541
Сказал(а) спасибо: 2
Поблагодарили 14 раз(а) в 14 сообщениях
Регистрация: 19.04.2005
По умолчанию 15.10.2009, 19:15

Philin, спасибо! Нужно было выполнить схожую задачу, всё работает. Заодно переделал старый вариант.
Ответить с цитированием
  (#5 (permalink)) Старый
Zander88 Zander88 вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.07.2010
По умолчанию 08.07.2010, 15:36

Помогите с Access ситуация похожая....



У меня таблица Товар и таблица Заказ

В таблице товар есть поле Точилки... и общее количество

С помощью формы делаю, Сотрудник Пупкин взял 10 точилок!
Надо сделать так чтобы из таблицы товары из графы точилки общее кол-во вычиталось 10

Заранее Спасибо
Ответить с цитированием
Ads.
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа на вывод данных содержащихся в файле st.txt K16FORWARD Вопросы начинающих программистов 4 13.12.2010 21:11
Создание таблицы состоящей из данных другой таблицы в Delphi Krica Вопросы начинающих программистов 5 28.12.2007 00:22
Как создать бзу данных в виде таблицы Shturmovik Delphi 6 18.04.2007 11:22
Удаление данных из таблицы Pyshkin Oracle 2 08.02.2007 13:21
Как на основе данных прорисовать динамическую схему движения воды Lapunik Вопросы начинающих программистов 5 26.05.2006 10:58
Базы данных и зависимые таблицы Sputni_ck C++ Builder 3 27.04.2006 20:31
Таблицы в Базе Данных _newbie_ Visual C++ 6 06.02.2006 18:08
Как защитить таблицы данных Lusik C++ Builder 5 19.04.2005 12:17
Конвертация данных из таблицы тип данных Data в строку ururu_23 C++ Builder 7 04.02.2005 10:41
Сохранение данных из таблицы на странице РНР _Mik_ Delphi 0 26.09.2004 02:48
Вывод данных из таблицы Fl@sh PHP 5 09.06.2004 18:20
Взятие данных из таблицы Paradox 5.0 Anonymous Delphi 1 17.01.2004 20:38



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов