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

Вниз

Можно ли сделать такой запрос:   Найти похожие ветки 

 
Владий   (2003-08-11 09:50) [0]

Есть таблица с договорами. По ним идут перечисления, но не каждый день. Нужно выводить в таблицу таким образом, чтоб если ны было перечисления на дату, то писалось бы значение, предыдущего перечисления. И так по каждому договору...

Так можно сделать?

Хорошей Удачи!
Владий // ICQ: 47659886


 
Соловьев   (2003-08-11 09:56) [1]

какая СУБД?


 
Hawk2   (2003-08-11 10:06) [2]

И структуру таблиц неплохо бы узнать?


 
Владий   (2003-08-11 10:16) [3]

Таблица в Access"ной базе

ID_P - счетчик
GDate - дата перечисления
Contr - Договор
GSum - сумма перечисления

Хорошей Удачи!
Владий // ICQ: 47659886


 
Владий   (2003-08-11 10:19) [4]

Соответственно, как я понимаю - нужно разсортировать по договору, а потом по датампроверить на наличие записей и если таковой нет, то добавить... Или я не понимаю чего-то?...


 
Соловьев   (2003-08-11 10:30) [5]

а на какую дату? на текущую тебе?
думаю 2 запроса вида
select *
from table
where gdate=now and contr=:n_dog

и еще один

select *
from table
where contr=:n_dog
order by gdate desc

а в проге
if not query1.isempty then
edit1.text := query1.fieldbyname("gsum").asstring
else
edit1.text := query2.fieldbyname("gsum").asstring


 
Hawk2   (2003-08-11 10:45) [6]

Я думаю автор имел ввиду другое. Если я правильно понял то в таблице будут записи на каждий день по каждому введенному договору, но чтобы реализовать запрос автора нужно либо в программе делать так чтобы каждый день на каждый договор (если небыло перечислений) отискивалась запись с предидущей сумой и записывалась в поле GSum. Или если работать с уже имеющейся базой то тут не обойтись без промежуточных таблиц. Или может я чего-то не понял?


 
Владий   (2003-08-11 11:05) [7]

Все правильно. но вот каким образом это все организовать я пока не представляю...


 
stud   (2003-08-11 11:12) [8]

если выбрать все договора с максимальной датой? по идее получатся договора с текущей датой или последней введенной, те. предыдущей


 
Hawk2   (2003-08-11 11:17) [9]

Туговато соображаю, вобщем если есть возможность изменить программу, то делай как написал Соловьев, только я думаю здесь нужно использовать второй запрос, чтобы найти последнюю запись с суммой нужного нам договора, ну а потом вставка или апдейт, смотря что нужно. Кстати у тебя записи с договорами каждый день добавляются или в начале месяца? Если каждый день то как, автоматом или вручную? И еще, если все же програмку (которая заводит эти договора) изменить нельзя и приходится работать с чем есть, то наверное всетаки через временные таблицы.


 
denche   (2003-08-11 13:53) [10]

Вот такой запрос не подойдет???

SELECT t1.Contr, t1.GSum , t1.GDate
FROM tabl AS t1
inner join
(SELECT max(t2.GDate) as GDate, t2.Contr
FROM tabl AS t2
where t2.GDate <= #01/01/2003#
group by t2.Contr
) as t3
on t1.contr = t3.contr
and t1.Gdate = t3.GDate

order by t1.contr


отлажен на Accesse 2000


 
Владий   (2003-08-11 17:10) [11]

Как я понимаю, мне нужно делать доп. таблицу куда перекидывать данные, вставляя нехватающие строки (ибо перечисления далеко не ежедневны).
Данные все вносятся вручную...

PS. По поводу последнего скрипта - эксес не понимает откуда появились т2 и т3 =/



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

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

Наверх





Память: 0.46 MB
Время: 0.01 c
1-1479
Rel_
2003-08-18 09:10
2003.09.01
копирование оъектов


14-1650
Khloo!
2003-08-11 13:42
2003.09.01
База данных...


14-1586
Marser
2003-08-14 02:32
2003.09.01
Годовщина


1-1399
ASt
2003-08-16 01:38
2003.09.01
Много однотипных компонентов


14-1649
Serginio666
2003-08-12 16:51
2003.09.01
А работает ли Поиск на данном форуме????





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