powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с выбором нужной строки!
8 сообщений из 8, страница 1 из 1
Проблема с выбором нужной строки!
    #39593958
dima_18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый день!

Извините за беспокойство. Еще один сложный момент.

Есть номер услуги у меня. Данный номер должен дать нам цену услуги.
Цена услуги берется из другой таблицы (структура такая примерно у нее):
ind_usl
dt_usl
stoim_usl

Но к сожалению данная таблица содержит по данном индексу одну и туже услугу, но в разные годы.
т.е.
услуга с номером 1 - (уборка ящиков)
1 уборка ящиков 01.01.2009 450.00
1 уборка ящиков 01.01.2010 630.00
1 уборка ящиков 01.01.2017 1030.00

Мне надо соответственно взять стоимость (последний столбец) с самой поздней датой.

Помогите пожалуйста отобрать так.
Спасибо большое
...
Рейтинг: 0 / 0
Проблема с выбором нужной строки!
    #39593999
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dima_18,
Код: sql
1.
2.
3.
4.
5.
6.
Create Cursor test (ind_usl int, dt_usl date, stoim_usl n(15,2))
Insert into test values (1, Date(2009, 1, 1), 450.00)
Insert into test values (1, Date(2010, 1, 1), 630.00)
Insert into test values (1, Date(2017, 1, 1), 1030.00)

Select stoim_usl from test where ind_usl = 1 and dt_usl = (select Max(dt_usl) from test where ind_usl = 1)
...
Рейтинг: 0 / 0
Проблема с выбором нужной строки!
    #39594045
dima_18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо, Sergey за ответ!

А еще такой вопрос, чтобы не натыкаться на следующие неприятности. Может мне из данной таблицы (с такими повторяющимися случаями) сделать отфильтрованную таблицу, как Вы подсказали и потом с ней работать? Как посоветуете?

Просто мы отобрали услугу с номером "1" , а далее я уже нашел 56 услуга также есть со старой и новой ценой.

Спасибо большое
...
Рейтинг: 0 / 0
Проблема с выбором нужной строки!
    #39594056
dima_18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. я хочу создать из данной таблицы - так называемую очищенную таблицу с самыми последними датами, суммами и т.д.
...
Рейтинг: 0 / 0
Проблема с выбором нужной строки!
    #39594065
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dima_18Большое спасибо, Sergey за ответ!

А еще такой вопрос, чтобы не натыкаться на следующие неприятности. Может мне из данной таблицы (с такими повторяющимися случаями) сделать отфильтрованную таблицу, как Вы подсказали и потом с ней работать? Как посоветуете?Не вижу смысла.
Время течет и такая таблица будет терять актуальность и для её поддержания придется все время что-то делать.
Просто мы отобрали услугу с номером "1" , а далее я уже нашел 56 услуга также есть со старой и новой ценой.
Если это запрос немного переделать, то из него хорошо выйдет local view. Никаких обновлений, на любое количество услуг.
...
Рейтинг: 0 / 0
Проблема с выбором нужной строки!
    #39594341
dima_18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо, Сергей за последний ответ!

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

Итак, я буду двигаться по таблице. Взял я сумму эту и буду записывать в третью таблицу другие поля и поле sum_usl вставлять уже это(которое получено хождением по таблице usl_ras).

Поэтому я двигаюсь по таблице : А беру из таблицы usl_ras ( актуальную сумму) и в таблицу В добавляю строку (append blank)
replace fio with a.fiop
replace sum_us with (величина полученная входе запроса по максимальной дате)

т.е. так можно в цикле проходить для запроса?

Спасибо большое
...
Рейтинг: 0 / 0
Проблема с выбором нужной строки!
    #39594581
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dima_18,
Что касается самого первого вопроса, есть еще вариант запроса.
Код: sql
1.
Select top 1 stoim_usl from test where ind_usl = 1 order by dt_usl desc into cursor src


Думаю ясно без пояснений)

Что касается последнего вопроса, то не очень понял что хочется.
Но вместо
Код: sql
1.
2.
3.
Поэтому я двигаюсь по таблице : А беру из таблицы usl_ras ( актуальную сумму) и в таблицу В добавляю строку (append blank)
replace fio with a.fiop
replace sum_us with (величина полученная входе запроса по максимальной дате)


Лучше все в одном стиле
Т.е.
Код: sql
1.
inset into SomeTabl (fio,sum_us,...) values(a.fio,src.stoim_usl, ...)


Возможно можно и без цикла, сразу все перенести.
Просто надо понять, как объеденяются табл. a с с табл. источником сумм.
...
Рейтинг: 0 / 0
Проблема с выбором нужной строки!
    #39594586
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dima_18Т.е. я хочу создать из данной таблицы - так называемую очищенную таблицу с самыми последними датами, суммами и т.д.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Create Cursor test (ind_usl int, dt_usl date, stoim_usl n(15,2))
Insert into test values (1, Date(2009, 1, 1), 450.00)
Insert into test values (1, Date(2010, 1, 1), 630.00)
Insert into test values (1, Date(2017, 1, 1), 1030.00)
Insert into test values (2, Date(2010, 1, 1), 123.00)
Insert into test values (2, Date(2017, 1, 1), 456.00)

select ind_usl, Max(dt_usl) as dt_max from test group by ind_usl into cursor tmax

select test.* from test join tmax on test.ind_usl = tmax.ind_usl and test.dt_usl = tmax.dt_max

use in tmax
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с выбором нужной строки!
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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