powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как соединить такое?
32 сообщений из 32, показаны все 2 страниц
Как соединить такое?
    #39803261
m1ke423
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Торговая точка/товарКоличество (шт.)Сумма (сум)Дата заказаSAL0087.1670160009834660019.07.20181325300225510019.07.2018151210058460019.07.2018201210062640019.07.2018221230001127400019.07.2018222581006088770019.07.201827122000668200019.07.2018272524001603680019.07.2018

есть такая таблица.
первая строка это заказ, а все последующие это ид товара который входил в этот заказ. Как вывести это через union select?
Модератор: Поработал визуализатором
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803270
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m1ke423,

мало данных
существующий пример плохо визуализирован
нет корректного тестового примера
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803286
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m1ke423,

Может основы архитектуры БД посмотреть?

https://ru.wikipedia.org/wiki/Третья_нормальная_форма
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803287
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m1ke423,

А если работать с данными в таком виде, то придется через хитрозакрученную Ж изгаляться с помощью оконных функций, вроде FIRST_VALUE() OVER .
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803289
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m1ke423Торговая точка/товарКоличество (шт.)Сумма (сум)Дата заказаSAL0087.1670160009834660019.07.20181325300225510019.07.2018151210058460019.07.2018201210062640019.07.2018221230001127400019.07.2018222581006088770019.07.201827122000668200019.07.2018272524001603680019.07.2018

есть такая таблица.
первая строка это заказ, а все последующие это ид товара который входил в этот заказ. Как вывести это через union select?
Модератор: Поработал визуализатором
нормализация -1 порядка?
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803297
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,

Это не нормализация никакого порядка. Даже в ХД в таком виде не держат данные.
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803298
m1ke423
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreymx,

Копировал с экселя, криво вставилось.
Нужно вывести топ 3 заказа за каждый месяц в 2018 году.
Первая строка Это Номер заказа, Торговая точка, кол-во продукции, сумма и так далее
А во второй строке через union select нужно объединить из двух таблиц в один столбец.

То есть
"Торговая Точка"/"Код Товара"
'Магазин'
'3123'

хотя лучше так: http://prntscr.com/ndm4v4
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803300
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понял нужно получить такую таблицу с помощью Union all:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Select [Торговая точка/товар],
          [Количество],
          [Дата] 
From (
  Select [НомерЗаказа] as  [Торговая точка/товар],
            [Количество],
            [Дата],
            1 as [Уровень],
            [Номер/ИД Заказа] as [Заказ]
     From [Заказы]
  union all
  Select [ИД] as  [Торговая точка/товар],
            [Количество],
            [Дата],
            2 as [Уровень],
            [Номер/ИД Заказа] as [Заказ]
     From [СтрокиЗаказа]
) x
Order by [Заказ], [Уровень]
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803304
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kopelly,

Вы за автора сделали нормальзацию, в частности попытались ввести ключи.
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803306
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voroninKopelly,

Вы за автора сделали нормальзацию, в частности попытались ввести ключи.

Автор спрашивал, как вывести(да, коряво спрашивал)
а вы за автора додумали про нормализацию и хранение.
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803318
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже при такой левой схеме, должен быть признак, отличающий строку идентифицирующую заказ от строк с товарами этого(этих) заказов.
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803320
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183Даже при такой левой схеме, должен быть признак, отличающий строку идентифицирующую заказ от строк с товарами этого(этих) заказов.
есть буквы/нет букв
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803322
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m1ke423хотя лучше так: http://prntscr.com/ndm4v4
Это исходные данные, или результат, который надо получить?
В любом случае - нужна вторая часть задачи.
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803323
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK982183Даже при такой левой схеме, должен быть признак, отличающий строку идентифицирующую заказ от строк с товарами этого(этих) заказов.есть буквы/нет букв
Логично.
Но интуиция вещь не всегда точная.
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803326
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ там ID есть.
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803330
m1ke423
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183,

Это результат который надо получить
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803331
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m1ke423982183,

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

вам же уже написали пример, как можно получить такой результат.
или надо угадать вашу структуру данных и написать вам готовый запрос?
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803332
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда Kopelly дал совершенно правильное направление.

Осталось только понять, что для получения результата надо видеть и первичные данные или просто их структуру.
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803423
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m1ke423все последующие
Последующие — это какие?
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803430
m1ke423
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alibek B.,

http://prntscr.com/ndm4v4
Обратите внимание на данный скриншот. Это результат который должен получиться
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803433
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m1ke423Alibek B.,

http://prntscr.com/ndm4v4
Обратите внимание на данный скриншот. Это результат который должен получитьсяИз чего он должен получиться? Из воздуха?

Будьде добры выполнить рекомендации из п.4 и п.6
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803435
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевичm1ke423Alibek B.,

http://prntscr.com/ndm4v4
Обратите внимание на данный скриншот. Это результат который должен получитьсяИз чего он должен получиться? Из воздуха?

Будьде добры выполнить рекомендации из п.4 и п.6
вы что не художник? нарисуйте!
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803451
Фотография Nika gnome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m1ke423,
А теперь добавь ещё одну такую группу "строки и подстроки", перемешай все строки и ещё разок объясни, где там группа, а где все члены этой группы.

Ты введи ещё один столбец с кодом группы. И сделай так, чтобы у всех строк одной группы был общий одинаковый код.
Можешь немного ещё улучшить - выдели после этого первую строку в отдельную таблицу.
Вот теперь у тебя получится нормализованная человеческая таблица, с которой можно будет работать.

А то, что ты тут нарисовал - это ты пытался пользоваться SQL Server'ом так, как ты всегда пользовался Excel'ем.
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803570
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Человеку, скорее всего просто нужен отчет
и слать его нужно не в проектирование, а в репортинг
Описанием своего UNION он пытался, понятными для этого раздела словами, объяснить, что первой строкой ему нужна сумма по группе заказа

PS. Все выше написанное исключительно ИМХО
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803585
m1ke423
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Давайте попробую объяснить более понятно
Я стажёр в IT отделе одной из фирм. Опыт с t-sql всего неделя.
Дали задание:

Необходимо составить топ 3 отчёта по сумме продаж за каждый месяц, за 2018 год. И есть пример как это должно выглядеть в ssms
http://prntscr.com/ndm4v4

То есть первая строка выдаёт сам заказ (SAL0087.1670), название торговой точки(Азизбек.... МЧЖ), единица измерения (блоки) с общим количеством товара (2060) и суммой (98 миллионов)
А ниже собственно (1325) ид товара, (Sarbast Original) имя товара у которого ид(1325), кол-во штук даного товара и собственно общая сумма. Сумму можно найти умножением Кол-ва на цену 1 товара

Дополнительную информацию в виде моего кода и прочего могу скинуть завтра когда буду в офисе
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803589
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m1ke423,
чтд

PS. Напишите в чем делаете отчет и Welcome
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803599
m1ke423
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iiyama,

По идее мне нужно написать запрос который выведет эту информацию в ssms, а потом скопировать в excel как это и сделано с примером. Проблема у меня в запросе, не могу написать. Нехватает знаний
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803601
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m1ke423iiyama,

По идее мне нужно написать запрос который выведет эту информацию в ssms, а потом скопировать в excel как это и сделано с примером. Проблема у меня в запросе, не могу написать. Нехватает знанийА навыков чтения вам хватает, чтобы ответы читать?
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803615
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m1ke423По идее мне нужно написать запрос который выведет эту информацию в ssms, а потом скопировать в excel как это и сделано с примером.
1. Извлекаете свои данные по заказам.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 declare @orderdata table(order_num nvarchar(50), order_date date, plu int, qty int, cost money)
insert into @orderdata values
  ('SAL0087.1670', '20180719', 1325, 300, 2255100)
, ('SAL0087.1670', '20180719', 1512, 100, 584600)
, ('SAL0087.1670', '20180719', 2012, 100, 626400 )
, ('SAL0087.1670', '20180719', 2212, 3000,	11274000 )
, ('SAL0087.1670', '20180719', 2225, 8100,	60887700 )
, ('SAL0087.1670', '20180719', 2712, 2000,	6682000 )
, ('SAL0087.1670', '20180719', 2725, 2400,	16036800 )

select * from @orderdata


2. Делаете сводную таблицу в Excel, например как на картинке
3. Profit
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803757
dklim.kzn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну это всё делается просто

select ... итоги
union
select ... данные

вопрос только в сортировке, чтобы итог был сверху
это можно обеспечить надежно либо добавлением пробела спереди к содержимому строки с названием торговой точки
либо каким то более сложным условием, основанным на содержимом
типа
order by case when name not like '[1-9]%' then 0 else 1 end, name

но скорее можно просто добавить тип, использовать его в сортировке, но не выводить

select ..., значения
from
(
select 0,... итоги
union
select 1,... данные
) t
order by t,...
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803758
dklim.kzn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с небольшой модификацией это применимо и для простыни по многим торговым точкам
как это _обычно любят_ серьезные специалисты
...
Рейтинг: 0 / 0
Как соединить такое?
    #39803809
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dklim.kznну это всё делается просто

select ... итоги
union
select ... данные

вопрос только в сортировке, чтобы итог был сверху
это можно обеспечить надежно либо добавлением пробела спереди к содержимому строки с названием торговой точки
либо каким то более сложным условием, основанным на содержимом
типа
order by case when name not like '[1-9]%' then 0 else 1 end, name

но скорее можно просто добавить тип, использовать его в сортировке, но не выводить

select ..., значения
from
(
select 0,... итоги
union
select 1,... данные
) t
order by t,...

вы тему в принципе дальше первого сообщения не читаете, а сразу мчитесь делиться своими гениальными мыслями?
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как соединить такое?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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