powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Срочно
17 сообщений из 17, страница 1 из 1
Срочно
    #39618194
Сергей7777777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Дело такое..... у меня есть 12 таблиц (в каждой есть список продуктов - яблоки, груши, картошка и т.д). Каждая таблица обзывается как Т1, Т2 .....Т12. Суть в чем, необходимо узнать какие из списка продуктов встречаются в 3-х и более таблицах.
...
Рейтинг: 0 / 0
Срочно
    #39618196
Сергей7777777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К примеру: яблоки - таблица Т1, Т4, Т7
...
Рейтинг: 0 / 0
Срочно
    #39618197
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спросите у того, кто придумал такую структуру данных.
...
Рейтинг: 0 / 0
Срочно
    #39618203
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Структура данных всех таблиц одинакова?
Или везде есть уникально поле с артикулом?
...
Рейтинг: 0 / 0
Срочно
    #39618204
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
объединить через union все таблички и сделать группировочный запрос с having count(*) > 2
...
Рейтинг: 0 / 0
Срочно
    #39618206
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей7777777Всем привет. Дело такое..... у меня есть 12 таблиц (в каждой есть список продуктов - яблоки, груши, картошка и т.д). Каждая таблица обзывается как Т1, Т2 .....Т12. Суть в чем, необходимо узнать какие из списка продуктов встречаются в 3-х и более таблицах.
Таки да.
Код: 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.
select tt.tovar_id,sum(tt.count1) as [Количество_таблиц_с_товаром]
from
(
select 1 as count1, tovar_id as tovar_id from T1 group by tovar_id
union all
select 1 as count1, tovar_id as tovar_id from T2 group by tovar_id
union all
select 1 as count1, tovar_id as tovar_id from T3 group by tovar_id
union all
select 1 as count1, tovar_id as tovar_id from T4 group by tovar_id
union all
select 1 as count1, tovar_id as tovar_id from T5 group by tovar_id
union all
select 1 as count1, tovar_id as tovar_id from T6 group by tovar_id
union all
select 1 as count1, tovar_id as tovar_id from T7 group by tovar_id
union all
select 1 as count1, tovar_id as tovar_id from T8 group by tovar_id
union all
select 1 as count1, tovar_id as tovar_id from T9 group by tovar_id
union all
select 1 as count1, tovar_id as tovar_id from T10 group by tovar_id
union all
select 1 as count1, tovar_id as tovar_id from T11 group by tovar_id
union all
select 1 as count1, tovar_id as tovar_id from T12 group by tovar_id
) tt group by tt.tovar_id
-- или так
--having count(*)>=3
-- и так тоже кошерно
having sum(tt.count1)>=3
...
Рейтинг: 0 / 0
Срочно
    #39618219
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это будет работать, если структура таблиц одинакова.
А у него скорее всего товар разбит по группам с разными аналитическими характеристиками.
...
Рейтинг: 0 / 0
Срочно
    #39618221
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей7777777,

Код: 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.
With All_Tables as
(
select 'T1'  as TableName, tovar_id, tovar_name from T1
union all
select 'T2'  as TableName, tovar_id, tovar_name from T2
union all
select 'T3'  as TableName, tovar_id, tovar_name from T3
union all
select 'T4'  as TableName, tovar_id, tovar_name from T4
union all
select 'T5'  as TableName, tovar_id, tovar_name from T5
union all
select 'T6'  as TableName, tovar_id, tovar_name from T6
union all
select 'T7'  as TableName, tovar_id, tovar_name from T7
union all
select 'T8'  as TableName, tovar_id, tovar_name from T8
union all
select 'T9'  as TableName, tovar_id, tovar_name from T9
union all
select 'T10' as TableName, tovar_id, tovar_name from T10
union all
select 'T11' as TableName, tovar_id, tovar_name from T11
union all
select 'T12' as TableName, tovar_id, tovar_name from T12
)
Select tovar_id, tovar_name,
 stuff((Select distinct ', '+ TableName From All_Tables b Where a.tovar_id = b.tovar_id and a.tovar_name = b.tovar_name For XML path('')),1,2,'')
 From All_Tables a
Group by a.tovar_id, a.tovar_name
Having count(distinct TableName)>=3
...
Рейтинг: 0 / 0
Срочно
    #39618222
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183Это будет работать, если структура таблиц одинакова.
А у него скорее всего товар разбит по группам с разными аналитическими характеристиками.
А какая разница, что за таблицы, если в каждой есть id товара - "у меня есть 12 таблиц ( в каждой есть список продуктов - яблоки, груши, картошка и т.д)".
...
Рейтинг: 0 / 0
Срочно
    #39618228
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторTopic Status: Some information in this topic is pre-release and subject to change in future releases. Pre-release information describes new features or changes to existing features in Microsoft SQL Server 2014.
Combines the results of two or more queries into a single result set that includes all the rows that belong to all queries in the union. The UNION operation is different from using joins that combine columns from two tables.
The following are basic rules for combining the result sets of two queries by using UNION:
• The number and the order of the columns must be the same in all queries.
• The data types must be compatible.
...
Рейтинг: 0 / 0
Срочно
    #39618230
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да какая разгница, это задача ТС всё привести к единому виду в запросе, направление решения ему уже дали
...
Рейтинг: 0 / 0
Срочно
    #39618231
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183,

Union будет работать не с исходными таблицами, а с результатами SELECT'ов, у которых количество, тип и порядок полей одинаковые.
...
Рейтинг: 0 / 0
Срочно
    #39618247
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точно, увидел.
...
Рейтинг: 0 / 0
Срочно
    #39618248
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183авторTopic Status: Some information in this topic is pre-release and subject to change in future releases. Pre-release information describes new features or changes to existing features in Microsoft SQL Server 2014.
Combines the results of two or more queries into a single result set that includes all the rows that belong to all queries in the union. The UNION operation is different from using joins that combine columns from two tables.
The following are basic rules for combining the result sets of two queries by using UNION:
• The number and the order of the columns must be the same in all queries.
• The data types must be compatible.

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

Konst_Oneобъединить через union все таблички и сделать группировочный запрос с having count(*) > 2
...
Рейтинг: 0 / 0
Срочно
    #39618291
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183Это был ответ вот этому автору.

Konst_Oneобъединить через union все таблички и сделать группировочный запрос с having count(*) > 2

это зачем мне это нужно? я это и без вас знаю.
...
Рейтинг: 0 / 0
Срочно
    #39618586
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если знаете, зачем предлагаете то, что работать будет только при определенных условиях или допобработаках?
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Срочно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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