powered by simpleCommunicator - 2.0.27     © 2024 Programmizd 02
Map
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как сджойнить в таком случае?
10 сообщений из 10, страница 1 из 1
Как сджойнить в таком случае?
    #40132827
Morskoi_kotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста!
Есть две таблицы:

Таблица 1 - содержит информацию о номенклатуре, наименовании товара, дате производства

Таблица 2 - содержит информацию о номенклатуре, квоте на розничную продажу, дате установления квоты.

Даты производства и установления квоты не совпадают.

Как сджойнить так, чтобы рядом с каждым товаром отражалась актуальная квота? И соответственно, которая была последняя актуальная в соответствии с датой производства? Например, гвозди были выпущены 01.02.2021, квота была установлена в размере 65% 05.02.2021, потом изменена на 70 % 15.02.2021. А потом была выпущена новая партия гвоздей 20.02.2021 и на нее была установлена квота 75% 25.02.2021.

Необходимо, чтобы в выводе отражалось, примерно, так: Гвозди от 01.02.2021 - квота 70% (15.02.2021) , Гвозди от 20.02.2021 - квота 70% (25.02.2021),
...
Рейтинг: 0 / 0
Как сджойнить в таком случае?
    #40132833
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пора учить outer apply.
...
Рейтинг: 0 / 0
Как сджойнить в таком случае?
    #40132836
cad2206
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Morskoi_kotik,

При выпуске новой партии в Таблице 1 создается новая запись или меняется текущая, по номенклатуре?
При установке новой квоты в Таблице 2 создается новая запись или меняется текущая, по номенклатуре?
...
Рейтинг: 0 / 0
Как сджойнить в таком случае?
    #40132838
Morskoi_kotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cad2206,

Новые записи в обеих таблицах
...
Рейтинг: 0 / 0
Как сджойнить в таком случае?
    #40132853
cad2206
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
примерно так

Код: sql
1.
2.
3.
4.
5.
6.
select t1.Name, t1.Date, t3.Quote, t3.Date
from [Table_1] t1
outer apply
 (select t2.ID, t2.Quote, t2.Date from [Table_2] t2
  where t1.ID = t2.ID
 ) t3
...
Рейтинг: 0 / 0
Как сджойнить в таком случае?
    #40133170
Morskoi_kotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cad2206,

Спасибо за скрипт! Но он то работает, но получается к старым выпускам подтягивает актуальные. Например, гвозди были выпущены 01.01.2019, потом партия 01.01.2020. а квоты установлены 01.06.2020. И в выводе я получаю: гвозди партия от 01.01.2019 - квота от 01.06.2020, гвозди партия от 01.01.2020 - квота от 01.06.2020. А надо получить: гвозди партия от 01.01.2019 - квота NULL, гвозди партия от 01.01.2020 - квота от 01.06.2020.
...
Рейтинг: 0 / 0
Как сджойнить в таком случае?
    #40133177
cad2206
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сравнивайте даты партии и даты квот

Код: sql
1.
2.
3.
4.
5.
6.
select t1.Name, t1.Data, t3.Quote, t3.Date
from [Table_1] t1
outer apply
 (select t2.ID, t2.Quote, t2.Date from [Table_2] t2
  where t1.ID = t2.ID and t1.Data < t2.Date
 ) t3



примерно так
...
Рейтинг: 0 / 0
Как сджойнить в таком случае?
    #40133326
Morskoi_kotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cad2206,

Если меньше, то все равно присваивает ко всем строкам. Попробовал знак больше, и строки присваивает но, получается все квоты которве были за даты после. И дублирует строки в табл 1

Чет я замучался)) может я ваще пытаюсь невозможное сделать))
...
Рейтинг: 0 / 0
Как сджойнить в таком случае?
    #40133415
cad2206
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для приведенных двух таблиц покажите таблицу, которая должна получиться в результате запроса
...
Рейтинг: 0 / 0
Как сджойнить в таком случае?
    #40133417
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Morskoi_kotik,

а как бы вы нашли ближайшее к какой-либо границе значение?

Имеется множество чисел {1,2,5,18,23}. Найти ближайшее меньшее число к 7. Подумайте.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как сджойнить в таком случае?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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