SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Microsoft SQL Server » Join по последней дате
Join по последней дате [сообщение #3270] Fri, 06 October 2023 15:17 Переход к следующему сообщению
David в настоящее время не в онлайне  David
Сообщений: 4
Зарегистрирован: October 2023
Junior Member
Добрый день!
Просьба подсказать решение.
Есть две таблицы (более млн записей в каждой и пару десятков полей)
1. Таблица Spravochnik
cod_product name        color factory          Date_key
000001        VW Polo         white Kaluga           05.03.2015
000002        VW Polo         white Kaluga           06.07.2018
000003        VW Polo        grey Nizhniy Novgorod 26.11.2019
000004        Renault Logan синий Togliatti        14.04.2018
000005        Renault Logan красный Togliatti        08.09.2020

2. Таблица Teh_obsluzhivanie
product_cod Date_key        Vehicle status
000001        04.07.2015 Исправен
000002        06.09.2020 Исправен
000003        15.03.2015 Текущее обслуживание
000004        24.08.2015 Ремонт подвески
000005        16.02.2019 Исправен
000001        28.11.2016 Текущее обслуживание
000002        24.11.2019 Ремонт КПП
000005        07.08.2018 Исправен
000004        19.05.2021 Исправен
000005        29.01.2020 Исправен
000001        15.01.2018 Ремонт двигателя
000002        15.05.2016 Исправен
000003        20.06.2017 Исправен
000004        13.11.2019 Текущее обслуживание
000005        07.02.2022 Текущее обслуживание
Нужно подтянуть последнюю дату тех. обслуживания (Date_key) и состояние авто (Vehicle_status) в первую таблицу.
Джойнить нужно по cod_poduct и product_cod
Так как в таблице Spravochnik тоже есть поле [Date_key] записи могут дублироваться с единственной разницей только по этому полю. Можно ли сделать DISTINCT по полю cod_poduct с фильтром по VW Polo
Типа
Where [name] = 'VW Polo'

[Обновления: Fri, 06 October 2023 15:19]

Известить модератора

Re: Join по последней дате [сообщение #3272 является ответом на сообщение #3270] Fri, 06 October 2023 15:42 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 368
Зарегистрирован: June 2022
Senior Member
Select top 1 * from Teh_obsluzhivanie
Where ....
Order by Date_key desc      
Re: Join по последней дате [сообщение #3274 является ответом на сообщение #3272] Fri, 06 October 2023 15:52 Переход к предыдущему сообщениюПереход к следующему сообщению
David в настоящее время не в онлайне  David
Сообщений: 4
Зарегистрирован: October 2023
Junior Member
Честно говоря, не совсем понял как тут Teh_obsluzhivanie джойнится со Spravochnik
Re: Join по последней дате [сообщение #3275 является ответом на сообщение #3274] Fri, 06 October 2023 16:11 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 889
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
джойни Spravochnik с этим запросом как с таблицей.
Re: Join по последней дате [сообщение #3397 является ответом на сообщение #3275] Fri, 13 October 2023 14:56 Переход к предыдущему сообщениюПереход к следующему сообщению
David в настоящее время не в онлайне  David
Сообщений: 4
Зарегистрирован: October 2023
Junior Member
Такой запрос подтягивает только одну запись по одному автомобилю. Поле product_cod подразумевает что это разные автомобили. Хотелось бы по каждому получить статус по последней дате
Re: Join по последней дате [сообщение #3398 является ответом на сообщение #3397] Fri, 13 October 2023 15:02 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 889
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
имхо, тут без программиста не обойтись
Re: Join по последней дате [сообщение #3399 является ответом на сообщение #3398] Fri, 13 October 2023 15:07 Переход к предыдущему сообщению
David в настоящее время не в онлайне  David
Сообщений: 4
Зарегистрирован: October 2023
Junior Member
А нельзя в этот запрос внедрить команду типа DISTINCT по определенному полю?
Предыдущая тема: Поиск по диапазону значений
Следующая тема: Установка Oracle Database 18c Express Edition
Переход к форуму:
  


Текущее время: Sun Dec 22 12:59:41 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00677 секунд