powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите как правильно подвязать таблицы.
23 сообщений из 23, страница 1 из 1
Подскажите как правильно подвязать таблицы.
    #39829706
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Есть две таблицы

table1
id_table1 name0C24D28A-CC4A-44F7-89A9-6D6BC5EB3BF1 name1B8BBC8B6-F36F-434F-9574-91CDAF1E708D name293E8FECB-8782-4357-B0FC-75C147594F50 name35B22FE0E-36A5-42AE-A280-93E6D47B4044 name4

table2
id_table1 start stop0C24D28A-CC4A-44F7-89A9-6D6BC5EB3BF1 2019-06-24 08:34:00.000null0C24D28A-CC4A-44F7-89A9-6D6BC5EB3BF1 2019-06-24 07:34:00.00007:34:00.0000C24D28A-CC4A-44F7-89A9-6D6BC5EB3BF1 2019-06-24 06:34:00.00006:34:00.0000C24D28A-CC4A-44F7-89A9-6D6BC5EB3BF1 2019-06-24 04:34:00.00004:34:00.000B8BBC8B6-F36F-434F-9574-91CDAF1E708D 2019-06-24 08:00:00.00008:00:00.00093E8FECB-8782-4357-B0FC-75C147594F5 2019-06-24 07:01:00.00008:34:00.0000C24D28A-CC4A-44F7-89A9-6D6BC5EB3BF1 2019-06-24 04:30:00.000null5B22FE0E-36A5-42AE-A280-93E6D47B4044 2019-06-24 03:14:00.000null

нужно на выходе получить такой результат

id_table1 start stop0C24D28A-CC4A-44F7-89A9-6D6BC5EB3BF1 2019-06-24 08:34:00.000nullB8BBC8B6-F36F-434F-9574-91CDAF1E708D 2019-06-24 08:00:00.00008:00:00.00093E8FECB-8782-4357-B0FC-75C147594F5 2019-06-24 07:01:00.00008:34:00.0005B22FE0E-36A5-42AE-A280-93E6D47B4044 2019-06-24 03:14:00.000null

То есть по каждой id_table1 получить последний результат по дате, я пробовал делать так:

Код: sql
1.
2.
3.
4.
select t1.id_table1, t1.name, MAX(t2.start) as start
from table1 as t1
left join table2  as  t2 on t1.id_table1 = t2.id_table1
group by t1.id_table1, t1.name



но если я добавлю туда t2.stop то все поломается. Подскажите пожалуйста как правильно составить запрос.
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829710
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да вроде не должно.
Покажи, как добавлял.
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829712
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот так, но там получаются левые даты stop

Код: sql
1.
2.
3.
4.
select t1.id_table1, t1.name, MAX(t2.start) as start, MAX(t2.stop) as stop
from table1 as t1
left join table2  as  t2 on t1.id_table1 = t2.id_table1
group by t1.id_table1, t1.name



я понимаю что это не правильно, а понять как надо не могу
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829714
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так "левые" или "ломается"?
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829716
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выходит просто максимальная дата t2.stop на привязанная к t2.start
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829717
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, есть объекты, по которым не было операций?
Попробуй убрать Left, поставь INNER
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829719
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hopfen_ArturВыходит просто максимальная дата t2.stop на привязанная к t2.start
Так это совсем другое дело.
Ты вовыдишь максимальную дату STOP, а не дату, из записи с минимальной датой.
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829720
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это то я понимаю, а как правильно, вообще надо сверху max убрать, и записать условие в where. Пробую пока что
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829721
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо сначала найти минимальную дату, а потом по ней искать и соответствующий STOP
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829722
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
этот товарищь 982183 хочет просто на 3 страницы тему растянуть что ли?
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829723
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотел так написать, но не прокатило, думаю дальше:

Код: sql
1.
2.
3.
4.
select t1.id_table1, t1.name, t2.start,  t2.stop, 
from table1 as t1
left join table2  as  t2 on t1.id_table1 = t2.id_table1
where t2.start IN (SELECT max(t2.start) FROM t2)
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829736
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKэтот товарищь 982183 хочет просто на 3 страницы тему растянуть что ли?
Старая дурная привычка давать людям вместо рыбы не удочку, а конструктор для её сборки.
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829739
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пока еще не разобрался =(
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829741
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hopfen_Arturхотел так написать, но не прокатило, думаю дальше:

Код: sql
1.
2.
3.
4.
select t1.id_table1, t1.name, t2.start,  t2.stop, 
from table1 as t1
left join table2  as  t2 on t1.id_table1 = t2.id_table1
where t2.start IN (SELECT max(t2.start) FROM t2)



Неправильно думаешь.
задача "Вывести start и stop из записей с максимальным start"
А не "вывести максимальный start и максимальный stop"
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829745
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я знаю что мне нужно, я не знаю как это сделать, в этом и проблема.
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829746
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сформируй таблицу с максимальным start, а потом свяжи её с исходной по id и start.
Так найдешь соответствующий stop
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829748
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183,

смысл понял, спасибо, сейчас попробую
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829749
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hopfen_Arturя знаю что мне нужно, я не знаю как это сделать, в этом и проблема.
Код: sql
1.
2.
3.
4.
5.
6.
7.
select id_table1, name, start,  stop
from (
    select t1.id_table1, t1.name, t2.start,  t2.stop, row_number() over(partition by t1.id_table1 order by t2.start desc) as R
    from table1 as t1
        left join table2 as t2 on t1.id_table1 = t2.id_table1
) t
where R = 1
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829750
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183сформируй таблицу с максимальным start, а потом свяжи её с исходной по id и start.А если start не уникальный?
В общем, зависит от постановки задачи (какие записи показывать из некольких неуникальных start)
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829751
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,

да старт даты могут совпадать, просто одну из них, любую.
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829752
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если start не уникальный, это ошибочная запись, бывает такое иногда, поэтому любую одну из них
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829753
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,

все работает спасибо вам
...
Рейтинг: 0 / 0
Подскажите как правильно подвязать таблицы.
    #39829754
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не легче ли потом просто UPDATE-ом пройтись.
надо будет затестить планы....
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите как правильно подвязать таблицы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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