Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Вниз

SQL выборка из таблицы с датами последнего изменения   Найти похожие ветки 

 
WG   (2006-05-30 09:21) [0]

Мастера, не пинайте, знаю, что с такими вопросами обычно отправляют на RTFM, но книжки под рукой нет и вопрос срочный.

Есть некая база, содержащая следующие поля: "дебитор", "признак дебитора", "сумма", "дата последнего изменения". Задача - построить по признаку дебитора таблицу типа "дата", "сумма по всем дебиторам". Первое что приходит в голову - выбрать дебиторов по признаку, потом циклом тупо перебрать даты и дебиторов и просуммировать. Но есть подозрение, что все это с полпинка решается еще на уровне SELECT. Не мог бы кто подтвердить или опровергнуть это подозрение ?


 
Ega23 ©   (2006-05-30 09:23) [1]

Group By + F1


 
ЮЮ ©   (2006-05-30 09:36) [2]


>  построить по признаку дебитора таблицу типа "дата", "сумма
> по всем дебиторам".

И какой интервал   "дата" ? от 0 до GetDate() ?
И какое соотношение между "дата последнего изменения" и "дата" ?.

Пусть например "дата последнего изменения"  = 02.02.06
Должна ли эта запись суммироваться для  01.02.06, 02.02.06, 03.02.06 ?
Что именно хочешь получить в "сумма
> по всем дебиторам" для конкретного значения  "дата"?


 
WG   (2006-05-30 09:55) [3]


> И какой интервал   "дата" ? от 0 до GetDate() ?


Ну в общем да.


> И какое соотношение между "дата последнего изменения" и
> "дата" ?.


Произвольный. Может вообще последний раз дебиторка менялась два года назад.


> Пусть например "дата последнего изменения"  = 02.02.06
> Должна ли эта запись суммироваться для  01.02.06, 02.02.
> 06, 03.02.06 ?


Должна суммироваться в 02.02.06 и 03.02.06. На 01.02 будет искаться какое-нибудь ближайшее, 25.01, к примеру.


> Что именно хочешь получить в "сумма
> по всем дебиторам" для конкретного значения  "дата"?


Именно сумму по всем дебиторам с заданным признаком на данную дату.


 
WG   (2006-05-30 09:56) [4]


> Пусть например "дата последнего изменения"  = 02.02.06
> Должна ли эта запись суммироваться для  01.02.06, 02.02.
> 06, 03.02.06 ?


Уточню - в 03.02.06 она суммируется только если нет записи с датой 03.02.06.


 
ЮЮ ©   (2006-05-30 10:56) [5]

SELECT SUM(Debits.Debt) FROM
 (
   SELECT Debtor, Max(ChangeDate) ChangeDate
   FROM Debits
   WHERE (ChangeDate <= @OnDate) AND (IsDebtor = 1)
   GROUP BY Debtor
 ) lastChange /* дата последней корректировки */
 JOIN Debits ON
   (lastChanged.Debtor = Debits.Debtor) AND
   (lastChanged.ChangeDate = Debits.ChangeDate)
   /* не должно быть два изменения на одну дату у одного и того же дебитора */


Где  "дебитор", "признак дебитора", "сумма", "дата последнего изменения".
      Debtor            IsDebtor               Debt              ChangeDate


 
WG   (2006-05-30 12:50) [6]

2 ЮЮ
Сэнкс ! Буду пробовать.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
2-1152733502
XeON
2006-07-12 23:45
2006.08.06
Добавление записи в динамический массив


2-1153302763
novill
2006-07-19 13:52
2006.08.06
Обработчик один - классы объектов разные, как объявить?


15-1152265708
Layner
2006-07-07 13:48
2006.08.06
Как подать в разъём S-VHS обычный видео сигнал?


2-1153329403
db_noob
2006-07-19 21:16
2006.08.06
БД + дерево


6-1142968278
qazwsx
2006-03-21 22:11
2006.08.06
Помогите c websnap ом разобраться





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский