Главная страница
    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.012 c
5-1137486493
scorp123
2006-01-17 11:28
2006.08.06
Проблема со свойством Text в ComboBox


2-1153309221
fast2
2006-07-19 15:40
2006.08.06
Какой размер страницы лучше вибрать при создании БД FireBird?


15-1152692547
DevilDevil
2006-07-12 12:22
2006.08.06
Быстрая компиляция Builder-a


3-1149162724
Dust
2006-06-01 15:52
2006.08.06
опятьBlob, перекачка инфы с помощью стримов


6-1143130382
RusGl
2006-03-23 19:13
2006.08.06
idHTTP, SSL и Connection Closed Gracefully





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский