|
Тема
|
Търсене на дати в БД
|
|
Автор | qq (Нерегистриран) |
Публикувано | 23.01.04 13:52 |
|
Как би трябвало да изглежда SQL заявка в таблица с информация за промяна цената на дадена стока. Имаме например колони ChDate - дата на която е променена цената на стоката, NewPrise - нова цена на стоката и Code - код на стоката. Искаме да разберем колко е била цената на дадена стока nnnn, на определена дата DDmmYYYY, като в общия случай е ясно, че цената не е променена точно в този ден.
| |
Тема
|
Re: Търсене на дати в БД
[re: qq]
|
|
Автор |
voyager (прасе в космоса) |
Публикувано | 23.01.04 14:15 |
|
Ако таблицата, за която говориш, е точно такава, която записва всяка промяна на цената (и следващата промяна не я трие, тоест май за такава таблица става въпрос, няма да е трудно:
SELECT NewPrise FROM table_name WHERE ChDate<='YYYY-mm-dd'
така ще видиш последната промяна преди тази дата и съответно каква е била цената на съответната дата
| |
Тема
|
Re: Търсене на дати в БД
[re: voyager]
|
|
Автор |
ro6avia (ламерясал) |
Публикувано | 23.01.04 14:30 |
|
Едно допълнение, че това дето е постнал voyager може и да не сработи баш :
SELECT NewPrise FROM table_name WHERE ChDate<='YYYY-mm-dd'
ORDER BY ChDate desc LIMIT 1
Е тук нищо няма:
| |
Тема
|
Това май по ми вдъхва доверие.
[re: ro6avia]
|
|
Автор | qq (Нерегистриран) |
Публикувано | 26.01.04 09:58 |
|
Щото първото ми се струва, че ще върне всички записи от предишни дати.
| |
Тема
|
Re: Трябваше мъничко по-подробно ...
[re: qq]
|
|
Автор |
salle (един такъв) |
Публикувано | 26.01.04 11:25 |
|
... да разкажеш какво представлява таблицата защото така се наложи гадаене от страна на voyager и рошавия.
Така както си го написал не става ясно дали пазиш само последната дата на промяна или датите на всички промени.
| |
Тема
|
Re: Трябваше мъничко по-подробно ...
[re: salle]
|
|
Автор | qq (Нерегистриран) |
Публикувано | 27.01.04 10:31 |
|
То ако пазя само последната промяна, ще става по-лесно - отваряш папката с бумагите и намираш каквото ти трябва
В базата какво да търся![](http://i.dirbg.com/clubs/icons/smile.gif)
| |
Тема
|
отваряш папката с бумагите и намираш ....
[re: qq]
|
|
Автор |
NDeu (динозавър) |
Публикувано | 27.01.04 11:41 |
|
Още по-лесно е, ако си записваш цените на дланта
Всъщност, въпроса който повдигаш е по-скоро концептуален. Вероятно затова иска информация за структурата ти, защото са възможни различни решения. Ако ти е интересно да се запознаеш с различни концепции прегледай
Иначе тясно погледнато и са ти дали отговор.Редактирано от NDeu на 27.01.04 11:50.
| |
Тема
|
Re: Търсене на дати в БД
[re: qq]
|
|
Автор |
GolfSynchro (VW фен) |
Публикувано | 27.01.04 13:55 |
|
SELECT NewPrise FROM table_name WHERE ChDate =(select max(ChDate) from
table_name where product=nnnn and Chdate<='DDmmYYYY')
and product=nnnn;
Ако имаш >1 промяна за последния ден с промяна имаш проблем.......
(В случай не в базата пазиш само дните - без mm,hh,ss )
следващата заявка в случая ще върне >1 резултат
SELECT NewPrise FROM table_name WHERE ChDate in (select max(ChDate) from
table_name where product=nnnn and Chdate<='DDmmYYYY')
and product=nnnn;
Най-коректно е да използваш колоните от първичния ти ключ
SELECT NewPrise FROM table_name WHERE Primary_key_colуmns =(select max(Primary_key_colуmns ) from
table_name where product=nnnn and Chdate<='DDmmYYYY')
and product=nnnn;
| |
|
|
|
|