Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите построить запрос. / 16 сообщений из 16, страница 1 из 1
27.04.2016, 13:39
    #39225581
Mironico
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос.
Добрый день!
Помогите пож. построить запрос.
Никак не соображу.

Таблица 1 TOV
ID_TOV (Ключ)
Tov_KOD

Таблица 2 PART
ID_TOV (связь с Таблицей 1)
Price (цена)
d_input (Дата прихода)

Нужна выборка:

TOV.Tov_KOD, PART.Price

Условие MAX(d_input).

т.е. код и цена последнего прихода.

Спасибо!
...
Рейтинг: 0 / 0
27.04.2016, 13:43
    #39225585
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос.
Hello, Mironico!
You wrote on 27 апреля 2016 г. 13:43:40:

Mironicoкод и цена последнего прихода.это задачка уровня лабораторной работы
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.04.2016, 13:45
    #39225587
Barmaley57
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос.
Mironico, select...first...order desc
...
Рейтинг: 0 / 0
27.04.2016, 13:46
    #39225588
Mironico
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос.
Мимопроходящий,

Да понимаю, но что-то никак не могу вьехать.
...
Рейтинг: 0 / 0
27.04.2016, 13:49
    #39225596
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос.
Hello, Mironico!
You wrote on 27 апреля 2016 г. 13:49:50:

Mironico> понимаю, но что-то никак не могу вьехать.
читай учебник ещё раз
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.04.2016, 15:40
    #39225802
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос.
MironicoУсловие MAX(d_input).

т.е. код и цена последнего прихода.


MAX() тебе даст максимальный приход, никак не последний. Ты уж проясни ситуацию, чего тебе надобно, мил человек.
...
Рейтинг: 0 / 0
27.04.2016, 15:42
    #39225805
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос.
DarkMaster,

Тьфу блин, невнимательно прочел... Таки да, даст максимальную дату.
...
Рейтинг: 0 / 0
27.04.2016, 16:12
    #39225858
Mironico
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос.
Код: sql
1.
2.
3.
4.
select a.tov_kod, (select first 1 b.price from part b
                              where b.idtov=a.idtov
                              order by b.d_input desc) as pr
from tovars a



Шото я наваял но работает оно ооочень медленно.
...
Рейтинг: 0 / 0
27.04.2016, 16:23
    #39225870
Вфшь
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос.
Mironico, а так:

select first 1 b.price, a.tov_kod
from part b
left join pars a on b.id_tov = a.id_tov
order by b.d_input desc
...
Рейтинг: 0 / 0
27.04.2016, 16:25
    #39225872
вфшь
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос.
Mironico, вернее

select first 1 b.price, a.tov_kod
from part b
left join TOV a on b.id_tov = a.id_tov
order by b.d_input desc
...
Рейтинг: 0 / 0
27.04.2016, 16:28
    #39225877
Mironico
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос.
вфшь,

Запрос выводит одну строку поскольку "first 1".
А тут нужно все из 'tov'
...
Рейтинг: 0 / 0
27.04.2016, 17:10
    #39225951
вфшь
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос.
Mironico, это да. Твой запрос по времени норм работает, только добавь проверку на дату (а то если не было даты на товар то запрос все равно выдаст этот товар)
...
Рейтинг: 0 / 0
27.04.2016, 17:23
    #39225959
Mironico
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос.
Через Access слепил рабочий вариант
Код: sql
1.
2.
3.
4.
SELECT TOVARS.TOVAR_KOD, First(PARTIONS.PRICE) AS [First-PRICE]
FROM TOVARS INNER JOIN PARTIONS ON TOVARS.IDTOVAR = PARTIONS.IDTOVAR
GROUP BY TOVARS.TOVAR_KOD
ORDER BY Max(PARTIONS.D_UPDATE) DESC;



Только чем заменить "First(PARTIONS.PRICE)"?
...
Рейтинг: 0 / 0
27.04.2016, 18:02
    #39225997
Mironico
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос.
Код: sql
1.
2.
3.
4.
SELECT TOVARS.TOVAR_KOD, MAX(PARTIONS.PRICE) as pr
        FROM TOVARS INNER JOIN PARTIONS ON TOVARS.IDTOVAR = PARTIONS.IDTOVAR
        GROUP BY TOVARS.TOVAR_KOD
        ORDER BY Max(PARTIONS.D_UPDATE) DESC



Получилось наконец.
Всем спасибо!
...
Рейтинг: 0 / 0
27.04.2016, 18:06
    #39226003
вфшь
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос.
Mironico, и что толку, а если цена будет в следующей партии меньше, то выборка будет не верна!
...
Рейтинг: 0 / 0
27.04.2016, 19:07
    #39226079
вфшь
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос.
Mironico, так что лучший твой вариант это был с подзапросом. Немного поправил

select a.kod, p.PRICE
from TOV a
left join part p on p.ID = (select first 1 b.id
from part b
where b.id_tov = a.id
order by b.d_input desc)
where p.D_INPUT is not null
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите построить запрос. / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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