Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
carga2
6 / 6 / 4
Регистрация: 07.11.2013
Сообщений: 244
1

Подсчет количества компонентов

15.01.2020, 09:56. Просмотров 150. Ответов 2
Метки нет (Все метки)

Здравствуйте, товарищи!
Помогите решить такую задачу:
В таблице Orders есть заказ, состоящий из нескольких операций. На каждой операции могут быть добавлены один или несколько компонентов. Компоненты указываются в таблице OrdersComponents. Заказы создаются на основе шаблонов из таблицы OrdersTemplate и операции заказов на основе шаблонов из таблицы OrdersComponentsTemplate. В таблице OrdersStatus содержится информация по статусам заказов и операций. Вопрос в том, как подсчитать необходимое количество компонентов с учетом вложенности самих компонентов, указанной на рисунке.
Вот скрипт на создание таблиц с данными
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
CREATE TABLE [dbo].[Orders](
    [OrderNumber] [varchar](50) NOT NULL,
    [Article] [nvarchar](50) NOT NULL,
    [Template] [nvarchar](50) NULL,
    [BelongOrder] [nvarchar](50) NOT NULL,
    [OrderType] [nvarchar](50) NOT NULL,
    [Quantity] [int] NOT NULL
) ON [PRIMARY]
 
CREATE TABLE [dbo].[OrdersComponents](
    [OrderStep] [nvarchar](50) NOT NULL,
    [Article] [nvarchar](50) NOT NULL,
    [ComponentType] [nvarchar](50) NOT NULL,
    [ResourceType] [nvarchar](50) NOT NULL,
    [Quantity] [int] NOT NULL
) ON [PRIMARY]
 
CREATE TABLE [dbo].[OrdersComponentsTemplate](
    [TemplateSteps] [nvarchar](50) NOT NULL,
    [Article] [nvarchar](50) NOT NULL,
    [ComponentType] [nvarchar](50) NOT NULL,
    [ResourceType] [nvarchar](50) NOT NULL,
    [Quantity] [int] NOT NULL
) ON [PRIMARY]
 
CREATE TABLE [dbo].[OrdersStatus](
    [OrderNumber] [nvarchar](50) NOT NULL,
    [OrderStatus] [char](1) NOT NULL
) ON [PRIMARY]
 
CREATE TABLE [dbo].[OrdersTemplate](
    [TemplateNumber] [nvarchar](50) NOT NULL,
    [Article] [nvarchar](50) NOT NULL,
    [TemplateType] [nvarchar](50) NOT NULL
) ON [PRIMARY]
 
INSERT [dbo].[Orders] ([OrderNumber], [Article], [Template], [BelongOrder], [OrderType], [Quantity]) VALUES (N'zakaz1', N'1', N'T1', N'zakaz1', N'O', 2)
INSERT [dbo].[Orders] ([OrderNumber], [Article], [Template], [BelongOrder], [OrderType], [Quantity]) VALUES (N'zakaz1_01', N'1', NULL, N'zakaz1', N'S', 2)
INSERT [dbo].[Orders] ([OrderNumber], [Article], [Template], [BelongOrder], [OrderType], [Quantity]) VALUES (N'zakaz1_02', N'1', NULL, N'zakaz1', N'S', 2)
INSERT [dbo].[Orders] ([OrderNumber], [Article], [Template], [BelongOrder], [OrderType], [Quantity]) VALUES (N'zakaz1_03', N'1', NULL, N'zakaz1', N'S', 2)
INSERT [dbo].[OrdersComponents] ([OrderStep], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'zakaz1_01', N'22', N'Сырье 22', N'С', 1)
INSERT [dbo].[OrdersComponents] ([OrderStep], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'zakaz1_01', N'11', N'Компонент 11', N'К', 1)
INSERT [dbo].[OrdersComponents] ([OrderStep], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'zakaz1_02', N'1', N'Компонент 1', N'К', 1)
INSERT [dbo].[OrdersComponents] ([OrderStep], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'zakaz1_02', N'12', N'Компонент 12', N'К', 2)
INSERT [dbo].[OrdersComponents] ([OrderStep], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'zakaz1_02', N'13', N'Компонент 13', N'П', 3)
INSERT [dbo].[OrdersComponents] ([OrderStep], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'zakaz1_03', N'1', N'Компонент 1', N'К', 1)
INSERT [dbo].[OrdersComponents] ([OrderStep], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'zakaz1_03', N'14', N'Компонент 14', N'К', 2)
INSERT [dbo].[OrdersComponents] ([OrderStep], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'zakaz1_03', N'15', N'Компонент 15', N'К', 5)
INSERT [dbo].[OrdersComponents] ([OrderStep], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'zakaz1_03', N'16', N'Компонент 16', N'П', 4)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T1_01', N'22', N'Сырье 22', N'С', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T1_01', N'11', N'Компонент 11', N'К', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T1_02', N'1', N'Компонент 1', N'К', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T1_02', N'12', N'Компонент 12', N'К', 2)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T1_02', N'13', N'Компонент 13', N'П', 3)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T1_03', N'1', N'Компонент 1', N'К', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T1_03', N'14', N'Компонент 14', N'К', 2)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T1_03', N'15', N'Компонент 15', N'К', 5)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T1_03', N'16', N'Компонент 16', N'П', 4)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T2_01', N'23', N'Сырье 23', N'С', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T2_02', N'11', N'Компонент 11', N'К', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T2_03', N'11', N'Компонент 11', N'К', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T3_01', N'24', N'Сырье 24', N'С', 2)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T3_02', N'25', N'Сырье 25', N'С', 2)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T3_02', N'12', N'Компонент 12', N'К', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T3_03', N'12', N'Компонент 12', N'К', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T4_01', N'26', N'Сырье 26', N'С', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T4_01', N'17', N'Компонент 17', N'К', 2)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T4_02', N'18', N'Компонент 18', N'К', 2)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T4_02', N'14', N'Компонент 14', N'К', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T4_03', N'14', N'Компонент 14', N'К', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T5_01', N'27', N'Сырье 27', N'С', 2)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T5_01', N'18', N'Компонент 18', N'К', 3)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T5_02', N'19', N'Компонент 19', N'К', 4)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T5_02', N'15', N'Компонент 15', N'К', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T5_03', N'15', N'Компонент 15', N'К', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T6_01', N'28', N'Сырье 28', N'С', 2)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T6_02', N'17', N'Компонент 17', N'К', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T7_01', N'28', N'Сырье 28', N'С', 3)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T7_01', N'20', N'Компонент 20', N'К', 3)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T7_02', N'18', N'Компонент 18', N'К', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T8_01', N'28', N'Сырье 28', N'С', 5)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T8_02', N'19', N'Компонент 19', N'К', 1)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T9_01', N'28', N'Сырье 28', N'С', 2)
INSERT [dbo].[OrdersComponentsTemplate] ([TemplateSteps], [Article], [ComponentType], [ResourceType], [Quantity]) VALUES (N'T9_02', N'20', N'Компонент 20', N'К', 1)
INSERT [dbo].[OrdersStatus] ([OrderNumber], [OrderStatus]) VALUES (N'zakaz1', N'1')
INSERT [dbo].[OrdersStatus] ([OrderNumber], [OrderStatus]) VALUES (N'zakaz1_01', N'3')
INSERT [dbo].[OrdersStatus] ([OrderNumber], [OrderStatus]) VALUES (N'zakaz1_02', N'3')
INSERT [dbo].[OrdersStatus] ([OrderNumber], [OrderStatus]) VALUES (N'zakaz1_03', N'2')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T1', N'1', N'O')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T1_01', N'1', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T1_02', N'1', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T1_03', N'1', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T2', N'11', N'O')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T2_01', N'11', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T2_02', N'11', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T2_03', N'11', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T3', N'12', N'O')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T3_01', N'12', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T3_02', N'12', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T3_03', N'12', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T4', N'14', N'O')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T4_01', N'14', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T4_02', N'14', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T4_03', N'14', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T5', N'15', N'O')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T5_01', N'15', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T5_02', N'15', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T5_03', N'15', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T6', N'17', N'O')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T6_1', N'17', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T6_2', N'17', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T7', N'18', N'O')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T7_01', N'18', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T7_02', N'18', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T8', N'19', N'O')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T8_01', N'19', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T8_02', N'19', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T9', N'20', N'O')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T9_01', N'20', N'S')
INSERT [dbo].[OrdersTemplate] ([TemplateNumber], [Article], [TemplateType]) VALUES (N'T9_02', N'20', N'S')
Мне удалось подсчитать количество компонентов на первом уровне вложенности.
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
select  OC.Article, OC.ComponentType, O1.Template AS [Шаблон заказа], OC.ResourceType, OT.TemplateNumber AS [Шаблон компонента],
        SUM(O.Quantity * OC.Quantity)  AS [Необх. кол-во]
from Orders O
    JOIN OrdersComponents OC
    ON OC.OrderStep = O.OrderNumber AND OC.Article <> N'1' AND OC.ResourceType = N'К'
    JOIN Orders O1
    ON O1.OrderNumber = O.[BelongOrder]
    JOIN [dbo].[OrdersStatus] OS
    ON OS.OrderNumber = O.OrderNumber AND (OS.[OrderStatus] = N'2' OR OS.[OrderStatus] = N'1' OR OS.[OrderStatus] = N'0')
    JOIN [dbo].[OrdersTemplate] OT
    ON OT.Article = OC.Article AND OT.TemplateType = 'O'
where O.Article = N'1' AND O1.Template = N'T1'
group by OC.Article, OC.ComponentType, O1.Template, OC.ResourceType, OT.TemplateNumber
Как остальные подсчитать?
0
Изображения
Тип файла: png Структура заказа.png (26.6 Кб, 3 просмотров)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2020, 09:56
Ответы с готовыми решениями:

Подсчет количества записей
Здравствуйте, у меня есть 2 таблицы, в одной имя пользователей в другой сообщения что они создают....

Подсчет количества строк
Помогите пожалуйста исправить код запроса чтобы он правильно работал. Формулировка запроса:...

Подсчет количества дней
У меня есть таблица с датами. ( Пример: 1. 2010-05-10 2. 2010-05-16 3. 2010-05-20 ...

Подсчет количества записей с повторением
День добрый не могу сообразить есть поля 1001 Иванов 10002 Иванов 3001 Петров 4100...

Неправильный подсчет количества полей
Всем привет . Пытаюсь реализовать прикладную задачу – за выбранный период происходит расчет...

2
invm
2522 / 1610 / 542
Регистрация: 02.06.2013
Сообщений: 3,981
15.01.2020, 10:18 2
См. рекурсивное CTE
1
carga2
6 / 6 / 4
Регистрация: 07.11.2013
Сообщений: 244
15.01.2020, 14:15  [ТС] 3
invm, Получилось написать такой запрос
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
WITH RecursiveQuery (Article, ComponentType, ResourceType, TemplateNumber, Quantity )
AS
(
select  OC.Article, OC.ComponentType, OC.ResourceType, OT.TemplateNumber AS [Шаблон компонента]
        ,SUM(O.Quantity * OC.Quantity)  AS [Необх. кол-во]
from Orders O
    JOIN OrdersComponents OC
    ON OC.OrderStep = O.OrderNumber AND OC.Article <> N'1' AND OC.ResourceType = N'К'
    JOIN Orders O1
    ON O1.OrderNumber = O.[BelongOrder]
    JOIN [dbo].[OrdersStatus] OS
    ON OS.OrderNumber = O.OrderNumber AND (OS.[OrderStatus] = N'2' OR OS.[OrderStatus] = N'1' OR OS.[OrderStatus] = N'0')
    JOIN [dbo].[OrdersTemplate] OT
    ON OT.Article = OC.Article AND OT.TemplateType = 'O'
where O.Article = N'1' AND O1.Template = N'T1'
group by OC.Article, OC.ComponentType, OC.ResourceType, OT.TemplateNumber
UNION ALL
select  OCT.Article, OCT.ComponentType, OCT.ResourceType, OT1.TemplateNumber AS [Шаблон компонента], OCT.Quantity * Rec.Quantity
from [dbo].[OrdersTemplate] OT  
    JOIN RecursiveQuery Rec
    ON OT.Article = Rec.Article AND OT.TemplateType = N'S'
    JOIN [dbo].[OrdersComponentsTemplate] OCT 
    ON OCT.TemplateSteps = OT.TemplateNumber AND OCT.ResourceType = N'К' AND OCT.Article <> Rec.Article
    JOIN OrdersTemplate OT1
    ON OT1.Article = OCT.Article AND OT1.TemplateType = N'O'
where OCT.ResourceType = N'К'
)
SELECT Article, ComponentType, ResourceType, TemplateNumber, SUM(Quantity) AS Quantity FROM RecursiveQuery
group by Article, ComponentType, ResourceType, TemplateNumber
Мне не хватает в нем уровня компонента. Т.е. чтобы была еще одна колонка Level, значения в которой формировались по следующему принципу: для компонентов 14 и 15 значение в Level - 1, для компонентов 17, 18, 19 значение в Level - 2, для компонента 20 значение в Level - 3. Как это сделать?

Добавлено через 10 минут
Это оказалось очень просто
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
WITH RecursiveQuery (Article, ComponentType, ResourceType, TemplateNumber, Quantity, [Level] )
AS
(
select  OC.Article, OC.ComponentType, OC.ResourceType, OT.TemplateNumber AS [Шаблон компонента]
        ,SUM(O.Quantity * OC.Quantity)  AS [Необх. кол-во], 1 AS [Level]
from Orders O
    JOIN OrdersComponents OC
    ON OC.OrderStep = O.OrderNumber AND OC.Article <> N'1' AND OC.ResourceType = N'К'
    JOIN Orders O1
    ON O1.OrderNumber = O.[BelongOrder]
    JOIN [dbo].[OrdersStatus] OS
    ON OS.OrderNumber = O.OrderNumber AND (OS.[OrderStatus] = N'2' OR OS.[OrderStatus] = N'1' OR OS.[OrderStatus] = N'0')
    JOIN [dbo].[OrdersTemplate] OT
    ON OT.Article = OC.Article AND OT.TemplateType = 'O'
where O.Article = N'1' AND O1.Template = N'T1'
group by OC.Article, OC.ComponentType, OC.ResourceType, OT.TemplateNumber
UNION ALL
select  OCT.Article, OCT.ComponentType, OCT.ResourceType, OT1.TemplateNumber AS [Шаблон компонента], OCT.Quantity * Rec.Quantity, [Level]+1 [Level]
from [dbo].[OrdersTemplate] OT  
    JOIN RecursiveQuery Rec
    ON OT.Article = Rec.Article AND OT.TemplateType = N'S'
    JOIN [dbo].[OrdersComponentsTemplate] OCT 
    ON OCT.TemplateSteps = OT.TemplateNumber AND OCT.ResourceType = N'К' AND OCT.Article <> Rec.Article
    JOIN OrdersTemplate OT1
    ON OT1.Article = OCT.Article AND OT1.TemplateType = N'O'
where OCT.ResourceType = N'К'
)
SELECT Article, ComponentType, ResourceType, TemplateNumber, SUM(Quantity) AS Quantity, [Level] FROM RecursiveQuery
group by Article, ComponentType, ResourceType, TemplateNumber, [Level]
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2020, 14:15

Подсчет количества с применением DateTimePicker
Здравствуйте, помогите с запросом пожалуйста. Есть таблица total_work, в таблице две колонки...

Подсчёт количества клиентов с болезнью
Добрый день! Нужна помощь Имеются две таблицы: Таблица Patient это наши пациенты, которые...

Подсчет количества упоминаний в запросе
Здравствуйте! Столкнулся с такой проблемой при выводе запроса. Нужно подсчитать количество поездок...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.