powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / View
11 сообщений из 11, страница 1 из 1
View
    #40093901
Caxa_ASS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

У меня есть 80 таблиц. У данных таблиц все столбцы идентичны, как в названии, так и в типе данных. Для удобства и дальнейших механизмов были созданы представления, для всех таблиц, где указаны необходимые для вывода столбцы. Далее появилась необходимость создать одно главное представление, которое будет содержать всю информацию из всех view. Чтобы объединить все созданные представления, я воспользовался union и получил то что, хотел. Общее представление содержит около 1 млн. записей, все выводится, но появилась проблема поиска и вывода информации, когда я начинаю использовать where, and, in, like.

При манипулировании данными операторами, я получаю либо какую то часть информации, либо вовсе данные не возвращаются. Если применить такие же фильтры в основных таблицах или в отдельно созданных представлениях, данные возвращаются.
В чем может быть причина? Что сделано неверно?
...
Рейтинг: 0 / 0
View
    #40093903
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С большой долей вероятности, ошибка в скриптах view или запросов к ней.

Детальнее можно общаться только имея скрипты таблиц, представлений и запросов, дающих "неправильный" результат.

Еще лучше, если будет репро, воспроизводящее потенциальную проблему.
...
Рейтинг: 0 / 0
View
    #40093919
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Caxa_ASS
Чтобы объединить все созданные представления, я воспользовался union и получил то что, хотел.
Что, прямо так и писали, "union"?
...
Рейтинг: 0 / 0
View
    #40093921
Caxa_ASS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
Caxa_ASS
Чтобы объединить все созданные представления, я воспользовался union и получил то что, хотел.
Что, прямо так и писали, "union"?


Да, так и написал ОДИН РАЗ -> union и все зациклил в Python.
...
Рейтинг: 0 / 0
View
    #40093924
Caxa_ASS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
С большой долей вероятности, ошибка в скриптах view или запросов к ней.

Детальнее можно общаться только имея скрипты таблиц, представлений и запросов, дающих "неправильный" результат.

Еще лучше, если будет репро, воспроизводящее потенциальную проблему.


Вот таких представлений у меня 80 шт. Взял список таблиц из
Код: sql
1.
SELECT name FROM sys.Tables

, в Python создал тело одного представления и зациклил, добавляя имена таблиц и название view.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
create view [Table1_view] as select

    cast([Column1] as varchar(max)) as [Name],
    cast([Column2] as varchar(max)) as [ID],
    cast([Column3] as varchar(max)) as [Key],
    cast([Column4] as varchar(max)) as [Made],
    cast([Column5] as datetime) as [Date1],
    cast([Column6] as float) as [Min],
    cast([Column7] as float) as [Max],
    cast([Column8] as datetime) as [Date2],
    cast([Column9] as varchar(max)) as [Box],
    cast([Column10] as varchar(max)) as [Status],
    cast([Column11] as datetime) as [Date3],
    cast([Column12] as datetime) as [Date4]

from [Table1]
GO



Далее так же было создано тело для общего представления, в которое вошли все эти views, которое так же были созданы в цикле Python.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create view [All view] as           
    select * from [Table1_view] 
    union
    select * from [Table2_view] 
    union
    select * from [Table3_view] 
    ......
    select * from [Table80_view]
go



Какой запрос я выполняю, все очень просто:
Код: sql
1.
select * from [All view] where [Made] is null
...
Рейтинг: 0 / 0
View
    #40093932
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Caxa_ASS,
если вдруг в разных таблицах в наличии полностью совпадающие строки, то имеет смысл всё-таки влезть в документацию по SQL Server и почитать, что делает union и для чего придумали union all.
аналогично, у тех же in и like тоже есть моменты, которые надо знать до того, как соберешься их использовать
...
Рейтинг: 0 / 0
View
    #40093935
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Caxa_ASS
Далее так же было создано тело для общего представления, в которое вошли все эти views, которое так же были созданы в цикле Python.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create view [All view] as           
    select * from [Table1_view] 
    union
    select * from [Table2_view] 
    union
    select * from [Table3_view] 
    ......
    select * from [Table80_view]
go

Тог8да понятно, почему "я получаю либо какую то часть информации, либо вовсе данные не возвращаются"
...
Рейтинг: 0 / 0
View
    #40093942
Caxa_ASS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
Caxa_ASS
Далее так же было создано тело для общего представления, в которое вошли все эти views, которое так же были созданы в цикле Python.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create view [All view] as           
    select * from [Table1_view] 
    union
    select * from [Table2_view] 
    union
    select * from [Table3_view] 
    ......
    select * from [Table80_view]
go

Тог8да понятно, почему "я получаю либо какую то часть информации, либо вовсе данные не возвращаются"


Тогда будьте любезны, объяснить мне почему или, что я делаю не так.
...
Рейтинг: 0 / 0
View
    #40093945
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Caxa_ASS,

А как Вы гарантируете, что под столбцом А таблицы 1 не будет находиться столбец Б таблицы2?
...
Рейтинг: 0 / 0
View
    #40093961
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Caxa_ASS
alexeyvg
пропущено...
Тог8да понятно, почему "я получаю либо какую то часть информации, либо вовсе данные не возвращаются"

Тогда будьте любезны, объяснить мне почему или, что я делаю не так.
Вам тут уже написали.
union нужен, что бы "схлопнуть" результат, он не выводит повторяющиеся значения.
используйте union all
Ещё укажите схему таблиц, то есть пишите, например,
Код: sql
1.
select * from dbo.[Table1_view] 


(если схема dbo)
...
Рейтинг: 0 / 0
View
    #40093969
Caxa_ASS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

Спасибо!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / View
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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