powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не могу разобраться , оконные функции или как???
2 сообщений из 2, страница 1 из 1
Не могу разобраться , оконные функции или как???
    #40057197
GARU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть две таблицы

Таблица операций
Identity_Num Order_ID
1 1
2 1
3 3
4 2
5 2
6 2
7 6

Таблица сумм операций
Order_ID Quantity
1 100
1 150
2 250
2 250
2 260
3 325
4 666

Нужно «обогатить» первую табличку, присоединив к ней данные из второй, сопоставляя строчки по полю Order_ID.
Кол-во строк в результирующем датасете должно быть равно кол-ву строк в таблице операций.
Если запись есть в первой, но нет во второй – то в Order_ID и Quantity выводим NULL.

Итоговая таблица

Identity_Num Order_ID Quantity
1 1 100
2 1 150
3 3 325
4 2 250
5 2 250
6 2 260
7 Null Null

для быстроты понимания :

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
if object_id('tempdb..#Op','U') is not null drop table #Op
if object_id('tempdb..#OpSum','U') is not null drop table #OpSum

create table #Op
(
  Identity_Num int identity(1,1) primary key,   
  Order_ID int
)
create table #OpSum
(
  Order_ID int not null,   
  Quantity numeric(19, 8)     
)

insert into #Op (Order_ID) 
values  (1), (1), (3), (2), (2), (2), (6) 

insert into #OpSum (Order_ID, Quantity) 
values  (1, 100), (1, 150), (2, 250), (2, 250), (2, 260), (3, 325), (4, 666)
...
Рейтинг: 0 / 0
Не могу разобраться , оконные функции или как???
    #40057205
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что за фигня? Неужели ничему не учат в школах?

Код: sql
1.
2.
3.
4.
with o as ( select *, n = row_number() over(  partition by Order_ID order by Identity_Num ) from [Таблица операций] )
    ,  s as ( select *, n = row_number() over(  partition by Order_ID order by  Quantity ) from [Таблица сумм операций] )
  select *
     from o left outer join s on o.Order_ID = s.Order_ID and o.n = s.n
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не могу разобраться , оконные функции или как???
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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