Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Срочно / 17 сообщений из 17, страница 1 из 1
21.03.2018, 13:54
    #39618194
Сергей7777777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно
Всем привет. Дело такое..... у меня есть 12 таблиц (в каждой есть список продуктов - яблоки, груши, картошка и т.д). Каждая таблица обзывается как Т1, Т2 .....Т12. Суть в чем, необходимо узнать какие из списка продуктов встречаются в 3-х и более таблицах.
...
Рейтинг: 0 / 0
21.03.2018, 13:54
    #39618196
Сергей7777777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно
К примеру: яблоки - таблица Т1, Т4, Т7
...
Рейтинг: 0 / 0
21.03.2018, 13:55
    #39618197
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно
Спросите у того, кто придумал такую структуру данных.
...
Рейтинг: 0 / 0
21.03.2018, 13:59
    #39618203
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно
Структура данных всех таблиц одинакова?
Или везде есть уникально поле с артикулом?
...
Рейтинг: 0 / 0
21.03.2018, 14:00
    #39618204
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно
объединить через union все таблички и сделать группировочный запрос с having count(*) > 2
...
Рейтинг: 0 / 0
21.03.2018, 14:00
    #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
21.03.2018, 14:12
    #39618219
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно
Это будет работать, если структура таблиц одинакова.
А у него скорее всего товар разбит по группам с разными аналитическими характеристиками.
...
Рейтинг: 0 / 0
21.03.2018, 14:13
    #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
21.03.2018, 14:13
    #39618222
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно
982183Это будет работать, если структура таблиц одинакова.
А у него скорее всего товар разбит по группам с разными аналитическими характеристиками.
А какая разница, что за таблицы, если в каждой есть id товара - "у меня есть 12 таблиц ( в каждой есть список продуктов - яблоки, груши, картошка и т.д)".
...
Рейтинг: 0 / 0
21.03.2018, 14:23
    #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
21.03.2018, 14:24
    #39618230
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно
да какая разгница, это задача ТС всё привести к единому виду в запросе, направление решения ему уже дали
...
Рейтинг: 0 / 0
21.03.2018, 14:25
    #39618231
Kopelly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно
982183,

Union будет работать не с исходными таблицами, а с результатами SELECT'ов, у которых количество, тип и порядок полей одинаковые.
...
Рейтинг: 0 / 0
21.03.2018, 14:36
    #39618247
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно
Точно, увидел.
...
Рейтинг: 0 / 0
21.03.2018, 14:37
    #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
21.03.2018, 15:05
    #39618279
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно
Это был ответ вот этому автору.

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

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

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


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