powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выборка на Fox_2.6... Подскажите как??
7 сообщений из 7, страница 1 из 1
Выборка на Fox_2.6... Подскажите как??
    #34491122
НикитаВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Я с фоксом не очень давно работаю и вот нужна ваша помощь. Помогите составить процедуру выбора нужного периода цен из базы данных. Есть база где закодированны цены на товар, причем цена может меняться в разном месяце. Нужно чтобы в том месяце в котором работает прога, были те цены которые соответствуют этому месяцу, до того момента как не измениться снова цена.

Data(n) . Tovar(c) . Cena(n)
1 - voda - 12.5
3 - voda - 15.6
8 - voda - 10.8

Есть переменная int_per - в ней заложены коды каждого месяца (с 1 по 12), при входе в програму делаеться выбор месяца. Так вот как сделать так чтобы при выборе например мес.(7) была цена мес(3) 15,6 ... а при входе в мес(8) новая цена 10,8. Просто цена ожет меняеться в разные месяца, как учесть промежутки в выборке?
...
Рейтинг: 0 / 0
Выборка на Fox_2.6... Подскажите как??
    #34491577
НикитаВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что никто не знает как? помогите пожалуйсто
...
Рейтинг: 0 / 0
Выборка на Fox_2.6... Подскажите как??
    #34492103
НикитаВЧто никто не знает как? помогите пожалуйсто
В последних версиях VFP это можно сделать одним запросом, в FPD - делаем двумя:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
mes= 7  && задается в другом месте; здесь задано для примера...

select max(data) as dt from table1 where table1.data<=mes into cursor q1 && отбор даты смены цены

select t.data,t.tovar,t.cena from table1 t, q1 where t.data=q1.dt into cursor q2 && отбор цены

select q2
brow norm
...
Рейтинг: 0 / 0
Выборка на Fox_2.6... Подскажите как??
    #34492169
Станислав С НикитаВЧто никто не знает как? помогите пожалуйсто
В последних версиях VFP это можно сделать одним запросом, в FPD - делаем двумя:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
mes= 7  && задается в другом месте; здесь задано для примера...

select max(data) as dt from table1 where table1.data<=mes into cursor q1 && отбор даты смены цены

select t.data,t.tovar,t.cena from table1 t, q1 where t.data=q1.dt into cursor q2 && отбор цены

select q2
brow norm

И в FPD можно сделать одним запросом:
Код: plaintext
1.
2.
3.
4.
5.
select t.data,t.tovar,t.cena from table1 t, q1 where ;
  t.data in (;
      select max(data) as dt from table1 where table1.data<=mes ;
        ) ;
into cursor q2 && отбор цены
...
Рейтинг: 0 / 0
Выборка на Fox_2.6... Подскажите как??
    #34492184
НикитаВЧто никто не знает как? помогите пожалуйсто
Мои советы распространяются на приведенный Вами случай.
Если в таблице имеются записи для разных товаров, то луше использовать мой первый вариант (из двух запросов), соответствующим образом его откорректировав...
...
Рейтинг: 0 / 0
Выборка на Fox_2.6... Подскажите как??
    #34493842
НикитаВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В базе много товара и у каждого свой максимальный период есть. Как в таком случае сделать изменения в твоем примере? Подскажи пожалуйста.
...
Рейтинг: 0 / 0
Выборка на Fox_2.6... Подскажите как??
    #34494378
НикитаВВ базе много товара и у каждого свой максимальный период есть. Как в таком случае сделать изменения в твоем примере? Подскажи пожалуйста.
В самому подумать?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
mes= 7  && задается в другом месте; здесь задано для примера...

select max(data) as dt, tovar from table1 where table1.data<=mes into cursor q1 GROUP BY TOVAR && отбор даты смены цены по каждому товару

select t.data,t.tovar,t.cena from table1 t, q1 where t.data=q1.dt AND T.TOVAR=Q1.TOVAR into cursor q2 && отбор цены

select q2
brow norm
(Вносимые изменения выделены заглавными буквами)

И еще. Это все работает только в том случае, если названия стандартизованы, (всегда пишется одинаковое название продукта). Т.е., предположим, допустимо наименование: вода "Обуховская", тогда другие наименования, типа: вода Обуховская (без кавычек), или вода "ОбухАвская" (ошибка в слове), или "Обуховская" (отсутствует слово "вода" в наименовании) - будут для выборки совершенно другими продуктами.
Такова "се ля ви", т.е. выборка из базы данных при условии ключевого поля, содержащего текстовые/символьные данные...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выборка на Fox_2.6... Подскажите как??
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]