Ekklipce
Новичок
Помогите с запросом : запутался с датами
Решил вынести полную задачу в отдельный файл :
тоже самое здесь http://phpclub.ru/talk/showthread.php?s=&postid=374021,
но там оно как-то не заметно
Итак, исходные данные :
Table general (только используемые поля)
id---magazine---date_issue--прочие поля..
1----83-----------2004-02-18--...
2----83-----------2004-02-18--...
3----83-----------2004-02-18--...
4----83-----------2004-02-18--...
Table discount_vol (скидки, разные к примеру за каждый месяц)
id------date_change--sum---rate
83-----2004-01-01---2000--40
83-----2004-01-01---2500--45
83-----2004-02-01---2000--30
83-----2004-02-01---2500--35
83-----2004-02-01---3000--40
83-----2004-03-01---2500--25
83-----2004-03-01---2500--20
83-----2004-03-01---3000--15
Для поля 83 надо получить данные из discount_vol по дате, меньшей чем general.magazine, то есть
id------date_change--sum---rate
83-----2004-02-01---2000--30
83-----2004-02-01---2500--35
83-----2004-02-01---3500--30
помогите с запросом.. наверно юзать нажно MAX(discount_vol.date_change),
с условием типа general.date_issue > discount_vol.date_change
AND discount_vol.date_change = MAX(discount_vol.date_change)
вот запрос, который выводит все..
SELECT discount_vol.sum AS sum, discount_vol.rate AS rate, discount_vol.date_change
FROM discount_vol, general
WHERE general.magazine = discount_vol.id
AND discount_vol.id = '83'
AND general.date_issue > discount_vol.date_change
GROUP BY discount_vol.sum
при таком запросе выводяться данные по самым первым датам..
id------date_change--sum---rate
83-----2004-01-01---2000--40
83-----2004-01-01---2500--35
83-----2004-02-01---3000--35
НУЖНО по датам ближайщим к general.magazine - 2004-02-18 - но меньше их, то есть :
id------date_change--sum---rate
83-----2004-02-01---2000--30
83-----2004-02-01---2500--35
83-----2004-02-01---3500--30
в конечном итоге сумма sum будет уникальной, по ней и группирую, иначе - большое количество результатов получаеться.. чуть ли не на каждую запись в general
Решил вынести полную задачу в отдельный файл :
тоже самое здесь http://phpclub.ru/talk/showthread.php?s=&postid=374021,
но там оно как-то не заметно
Итак, исходные данные :
Table general (только используемые поля)
id---magazine---date_issue--прочие поля..
1----83-----------2004-02-18--...
2----83-----------2004-02-18--...
3----83-----------2004-02-18--...
4----83-----------2004-02-18--...
Table discount_vol (скидки, разные к примеру за каждый месяц)
id------date_change--sum---rate
83-----2004-01-01---2000--40
83-----2004-01-01---2500--45
83-----2004-02-01---2000--30
83-----2004-02-01---2500--35
83-----2004-02-01---3000--40
83-----2004-03-01---2500--25
83-----2004-03-01---2500--20
83-----2004-03-01---3000--15
Для поля 83 надо получить данные из discount_vol по дате, меньшей чем general.magazine, то есть
id------date_change--sum---rate
83-----2004-02-01---2000--30
83-----2004-02-01---2500--35
83-----2004-02-01---3500--30
помогите с запросом.. наверно юзать нажно MAX(discount_vol.date_change),
с условием типа general.date_issue > discount_vol.date_change
AND discount_vol.date_change = MAX(discount_vol.date_change)
вот запрос, который выводит все..
SELECT discount_vol.sum AS sum, discount_vol.rate AS rate, discount_vol.date_change
FROM discount_vol, general
WHERE general.magazine = discount_vol.id
AND discount_vol.id = '83'
AND general.date_issue > discount_vol.date_change
GROUP BY discount_vol.sum
при таком запросе выводяться данные по самым первым датам..
id------date_change--sum---rate
83-----2004-01-01---2000--40
83-----2004-01-01---2500--35
83-----2004-02-01---3000--35
НУЖНО по датам ближайщим к general.magazine - 2004-02-18 - но меньше их, то есть :
id------date_change--sum---rate
83-----2004-02-01---2000--30
83-----2004-02-01---2500--35
83-----2004-02-01---3500--30
в конечном итоге сумма sum будет уникальной, по ней и группирую, иначе - большое количество результатов получаеться.. чуть ли не на каждую запись в general