Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
 Аватар для carga2
11 / 9 / 6
Регистрация: 07.11.2013
Сообщений: 335

Сводная таблица

16.01.2020, 13:36. Показов 1524. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, товарищи.
Помогите решить задачу.
Необходимо сформировать таблицу как на рисунке, где: поле Кол-во на складе заполняется суммой Quantity из таблицы Warehouse для соответствующего Артикля, поле Кол-во в заказах A заполняется суммой Quantity из таблицы Order для соответствующего Артикля и со статусом А из таблицы Status (Связь Order.Num - Status.OrderNum), поле Кол-во в заказах B заполняется суммой Quantity из таблицы Order для соответствующего Артикля и со статусом B из таблицы Status (Связь Order.Num - Status.OrderNum).
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
CREATE TABLE [dbo].[Common](
    [Article] [nvarchar](50) NOT NULL,
    [Desc] [nvarchar](50) NOT NULL
) ON [PRIMARY]
 
CREATE TABLE [dbo].[Order](
    [Num] [nvarchar](50) NOT NULL,
    [Article] [nvarchar](50) NOT NULL,
    [Quantity] [int] NOT NULL
) ON [PRIMARY]
 
CREATE TABLE [dbo].[Status](
    [OrderNum] [nvarchar](50) NOT NULL,
    [Status] [nvarchar](50) NOT NULL
) ON [PRIMARY]
 
CREATE TABLE [dbo].[Warehouse](
    [Article] [nvarchar](50) NOT NULL,
    [Quantity] [int] NOT NULL
) ON [PRIMARY]
 
INSERT [dbo].[Common] ([Article], [Desc]) VALUES (N'1', N'a')
INSERT [dbo].[Common] ([Article], [Desc]) VALUES (N'2', N'b')
INSERT [dbo].[Common] ([Article], [Desc]) VALUES (N'3', N'c')
INSERT [dbo].[Order] ([Num], [Article], [Quantity]) VALUES (N'111', N'1', 10)
INSERT [dbo].[Order] ([Num], [Article], [Quantity]) VALUES (N'112', N'1', 11)
INSERT [dbo].[Order] ([Num], [Article], [Quantity]) VALUES (N'222', N'2', 22)
INSERT [dbo].[Order] ([Num], [Article], [Quantity]) VALUES (N'223', N'2', 23)
INSERT [dbo].[Order] ([Num], [Article], [Quantity]) VALUES (N'333', N'3', 33)
INSERT [dbo].[Order] ([Num], [Article], [Quantity]) VALUES (N'334', N'3', 34)
INSERT [dbo].[Order] ([Num], [Article], [Quantity]) VALUES (N'444', N'1', 11)
INSERT [dbo].[Order] ([Num], [Article], [Quantity]) VALUES (N'445', N'1', 12)
INSERT [dbo].[Order] ([Num], [Article], [Quantity]) VALUES (N'555', N'2', 55)
INSERT [dbo].[Order] ([Num], [Article], [Quantity]) VALUES (N'556', N'2', 56)
INSERT [dbo].[Order] ([Num], [Article], [Quantity]) VALUES (N'777', N'3', 77)
INSERT [dbo].[Order] ([Num], [Article], [Quantity]) VALUES (N'778', N'3', 78)
INSERT [dbo].[Status] ([OrderNum], [Status]) VALUES (N'111', N'A')
INSERT [dbo].[Status] ([OrderNum], [Status]) VALUES (N'112', N'B')
INSERT [dbo].[Status] ([OrderNum], [Status]) VALUES (N'222', N'A')
INSERT [dbo].[Status] ([OrderNum], [Status]) VALUES (N'223', N'B')
INSERT [dbo].[Status] ([OrderNum], [Status]) VALUES (N'333', N'A')
INSERT [dbo].[Status] ([OrderNum], [Status]) VALUES (N'334', N'B')
INSERT [dbo].[Status] ([OrderNum], [Status]) VALUES (N'444', N'A')
INSERT [dbo].[Status] ([OrderNum], [Status]) VALUES (N'445', N'B')
INSERT [dbo].[Status] ([OrderNum], [Status]) VALUES (N'555', N'A')
INSERT [dbo].[Status] ([OrderNum], [Status]) VALUES (N'556', N'B')
INSERT [dbo].[Status] ([OrderNum], [Status]) VALUES (N'777', N'A')
INSERT [dbo].[Status] ([OrderNum], [Status]) VALUES (N'778', N'B')
INSERT [dbo].[Warehouse] ([Article], [Quantity]) VALUES (N'1', 10)
INSERT [dbo].[Warehouse] ([Article], [Quantity]) VALUES (N'1', 33)
INSERT [dbo].[Warehouse] ([Article], [Quantity]) VALUES (N'2', 4)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.01.2020, 13:36
Ответы с готовыми решениями:

Сводная таблица
Доброго времени суток) Возникла такая задача: мне нужно создать сводную таблицу загруженности врачей в течение определенного года, где по...

Сводная таблица
Здравствуйте, ребята! На картинке диаграмма. Пользователь заполняет таблицы work1, work2, work3. Требуется создать сводную таблицу...

Сводная таблица через запрос SQL
Здравствуйте! Помогите разобраться в таком вопросе: Есть таблица: Номер Период 1111    Вчера 1112    Сегодня 1113    Завтра ...

6
 Аватар для carga2
11 / 9 / 6
Регистрация: 07.11.2013
Сообщений: 335
16.01.2020, 13:57  [ТС]
Вот рисунок
Миниатюры
Сводная таблица  
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
16.01.2020, 14:33
Лучший ответ Сообщение было отмечено carga2 как решение

Решение

pivot или sum(case when ... end)
1
 Аватар для carga2
11 / 9 / 6
Регистрация: 07.11.2013
Сообщений: 335
16.01.2020, 15:44  [ТС]
invm,
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
    select Article, [Desc], A as [count a], B as [count b]
    from (
        select  c.Article, c.[Desc], o.Quantity, s.Status
        from Common c
        join [Order] o
        on o.Article = c.Article
        join [dbo].[Status] s
        on s.OrderNum = o.Num
        ) t
    PIVOT ( SUM(Quantity)
            FOR Status IN ( A, B )
            ) p
а как еще добавить данные из Warehouse?
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
16.01.2020, 15:55
Цитата Сообщение от carga2 Посмотреть сообщение
а как еще добавить данные из Warehouse?
Приджойнить после pivot.
1
 Аватар для carga2
11 / 9 / 6
Регистрация: 07.11.2013
Сообщений: 335
16.01.2020, 16:24  [ТС]
Все получилось
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    select t1.Article, t1.[Desc], SUM(w.Quantity) as Z, t1.[count a], t1.[count b]
    from (
    select Article As [Article], [Desc] as [Desc], A as [count a], B as [count b]
    from (
        select  c.Article, c.[Desc], o.Quantity, s.Status
        from Common c
        join [Order] o
        on o.Article = c.Article
        join [dbo].[Status] s
        on s.OrderNum = o.Num
        ) t
    PIVOT ( SUM(Quantity)
            FOR Status IN ( A, B )
            ) p
            ) t1
    LEFT JOIN Warehouse w
    on w.Article = t1.Article
    group by t1.Article, t1.[Desc], t1.[count a], t1.[count b]
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
16.01.2020, 16:45
carga2, можно было не оборачивать в t1, а сразу джойнить после pivot.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.01.2020, 16:45
Помогаю со студенческими работами здесь

Режимы Сводная таблица и Сводная диаграмма в access 2013
куда делись режимы Сводная таблица и Сводная диаграмма в access 2013? Остались только режимы конструктор и таблица

Сводная таблица
Здравствуйте. Уважаемые форумчане, помогите пожалуйста. Есть таблица с курсом валюты по годам. Нужно сделать сводную таблицы со...

Сводная таблица
Можно ли из одной таблицы создать сводную, при этом объединяя данные из разных строк? Пример во вложении

Сводная таблица
Добрый день! Подскажите, пожалуйста, как сделать сводную таблицу к данным файла во вложении (выгрузка из программы). Справа -...

Сводная таблица
Добрый день, Цель: запуск сводной таблицы при использовании внешнего источника данных (ВСТАВКА->СВОДНАЯ ТАБЛИЦА->ИСПОЛЬЗОВАТЬ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru