Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 14.12.2016
Сообщений: 12
1

Собрать много таблиц в одну

19.11.2018, 14:44. Показов 1908. Ответов 11

Author24 — интернет-сервис помощи студентам
Подскажите не опытному.
Есть Table1...Table14 и Table99.
В Table99 нужно запихнуть все 14 таблиц (таблицы с несвязными и разными полями)
Table1

DateS1 DateE2 Adres1 Prim1 
19.11.2018_17:00 19.11.2018_19:00 Мира21 блаблабла 

Table2
DateS2 Vozd Vodn 
19.11.2018 нет нет 

...
Table 14

Нужно:
DateS1 DateE2 Adres1 Prim1 DateS2 Vozd Vodn ... Table14_с_ее_полями
19.11.2018_17:00 19.11.2018_19:00 Мира_21 блаблабла 19.11.2018 Нет Нет ... данные_с_14_таблицы
Пробую через LEFT JOIN собрать в эту таблицу, но не пойму как там задать условия для всех таблиц: нужно Dates1..S14 что бы входили в сутки: Between (Now() -1) and Now().
SQL
1
2
3
SELECT Table99.*, Table1.*, Table2.*, Table3.*, Table4.*, Table5.*, Table6.*, Table7.*, Table8.*, Table9.*, Table10.*, Table11.*, Table12.*, Table13.*, Table14.* 
FROM Table99
LEFT OUTER JOIN Table1, Table2, Table3, Table4, Table5, Table6, Table7, Table8, Table9, Table10, Table11, Table12, Table13, Table14 ON Table1.DateS1 BETWEEN ...
Добавлено через 1 час 0 минут
SQL
1
2
3
4
SELECT Table1.*, Table2.*, Table3.*, Table4.*, Table5.*, Table6.*, Table7.*, Table8.*, Table9.*, Table10.*, Table11.*, Table12.*, Table13.*, Table14.* 
FROM Table99
LEFT OUTER JOIN Table1 ON Table1.DateS1 BETWEEN ...
LEFT OUTER JOIN Table2 ON Table2.DateS2 BETWEEN ...
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2018, 14:44
Ответы с готовыми решениями:

Вывод много таблиц в одной
Столкнулся с тем, что пытаюсь объединить 3 таблицы и вывести их как 1. Да, он выводит, но он...

Выборка из нескольких таблиц в одну
Всем привет есть две таблицы Таблица1 : id | phone Таблица2 : id | number Как вывести...

Вывод данных из нескольких таблиц в одну
Здравствуйте. Требуется построить запрос, что бы из таблиц Bloki_Pitaniya, Jestkie_Diski, Korpusa,...

Собрать в одну таблицу сведения из двух других таблиц, сравнивая их по инвентарному номеру
Помогите пожалуйста с макросом для Excel. Есть 2 таблицы Лист1 и Лист2. Необходимо сравнивая две...

11
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,268
19.11.2018, 22:54 2
aldrow,
Цитата Сообщение от aldrow Посмотреть сообщение
В Table99 нужно запихнуть все 14 таблиц (таблицы с несвязными и разными полями)
Что вам именно нужно, сделать декартово произведение или просто перезаписать все записи в одну таблицу?
0
1643 / 1144 / 171
Регистрация: 23.07.2010
Сообщений: 6,794
20.11.2018, 10:24 3
очень интересно узнать про Table3-Table13
0
0 / 0 / 0
Регистрация: 14.12.2016
Сообщений: 12
21.11.2018, 13:26  [ТС] 4
Что вам именно нужно, сделать декартово произведение или просто перезаписать все записи в одну таблицу?

Мне нужно все 14 таблиц переписывать в таблицу 99.
Я записываю на форме в текстовое поле что-нибудь, например адрес или температуру. Жму кнопку "записать". У меня пишет в таблицу (например 4). Постольку поскольку в отчете reportviewer не допусается указывать набор данных из нескольких таблиц, поэтому собираю все в одну.

Все это делаю для того что бы отчете за сутки (за последние 24 часа) было:
Водопровод: Время_аварии время_устранения Адрес Примечания 
21.11.2019_10:00 21.11.2019_14:00 Мира_1 Тел_мастера:_8хххххххххх
...    
дата давлениеветертемпература
Метеобстановка: 21.11.2018 650 15

Кстати sql запрос записи из таблиц в таблицу99, нужно запускать каждый раз, когда производится наполнение с формы в таблицы?, . Если да, то как лучше сделать? В виде хранимой процедуры или в коде кнопки "записать" sql запрос через какие-то спец команды?

очень интересно узнать про Table3-Table13

Примерный текст Sql создание таблиц:

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
CREATE TABLE [dbo].[Table1] (
    [Table1ID] INT            IDENTITY (1, 1) NOT NULL,
    [Adres1]   NVARCHAR (250) NULL,
    [Prim1]    NVARCHAR (250) NULL,
    [DateS1]   DATETIME       NULL,
    [DateE1]   DATETIME       NULL
);
CREATE TABLE [dbo].[Table2] (
    [Table2ID] INT            IDENTITY (1, 1) NOT NULL,
    [Adres2]   NVARCHAR (250) NULL,
    [Prim2]    NVARCHAR (250) NULL,
    [DateS2]   DATETIME       NULL,
    [DateE2]   DATETIME       NULL,
    CONSTRAINT [PK_Orders_OrderID] PRIMARY KEY CLUSTERED ([Table2ID] ASC)
);
CREATE TABLE [dbo].[Table3] (
    [Table3ID] INT            IDENTITY (1, 1) NOT NULL,
    [Adres3]   NVARCHAR (250) NULL,
    [Prim3]    NVARCHAR (250) NULL,
    [DateS3]   DATETIME       NULL,
    [DateE3]   DATETIME       NULL
);
CREATE TABLE [dbo].[Table4] (
    [Table4ID] INT            IDENTITY (1, 1) NOT NULL,
    [Adres4]   NVARCHAR (250) NULL,
    [Prim4]    NVARCHAR (250) NULL,
    [DateS4]   DATETIME       NULL,
    [DateE4]   DATETIME       NULL
);
CREATE TABLE [dbo].[Table5] (
    [Table5ID] INT            IDENTITY (1, 1) NOT NULL,
    [Vozd]     NVARCHAR (250) NULL,
    [Vodn]     NVARCHAR (250) NULL,
    [DateS5]   DATE           NULL
);
CREATE TABLE [dbo].[Table6] (
    [Table6ID] INT            IDENTITY (1, 1) NOT NULL,
    [Vlag]     NVARCHAR (250) NULL,
    [Davlenie] NVARCHAR (250) NULL,
    [Veter]    NVARCHAR (250) NULL,
    [t]        NVARCHAR (250) NULL,
    [DateS6]   DATE           NULL
);
CREATE TABLE [dbo].[Table7] (
    [Table7ID]    INT            IDENTITY (1, 1) NOT NULL,
    [Adres7]      NVARCHAR (250) NULL,
    [Prim7]       NVARCHAR (250) NULL,
    [Pogiblo7]    INT            NULL,
    [Postradalo7] INT            NULL,
    [DateS7]      DATETIME       NULL
);
CREATE TABLE [dbo].[Table8] (
    [Table8ID]    INT            IDENTITY (1, 1) NOT NULL,
    [Adres8]      NVARCHAR (250) NULL,
    [Prim8]       NVARCHAR (250) NULL,
    [Pogiblo8]    INT            NULL,
    [Postradalo8] INT            NULL,
    [DateS8]      DATETIME       NULL
);
CREATE TABLE [dbo].[Table9] (
    [Table9ID]    INT            IDENTITY (1, 1) NOT NULL,
    [Adres9]      NVARCHAR (250) NULL,
    [Prim9]       NVARCHAR (250) NULL,
    [Pogiblo9]    INT            NULL,
    [Postradalo9] INT            NULL,
    [DateS9]      DATETIME       NULL
);
CREATE TABLE [dbo].[Table10] (
    [Table10ID]    INT            IDENTITY (1, 1) NOT NULL,
    [Adres10]      NVARCHAR (250) NULL,
    [Prim10]       NVARCHAR (250) NULL,
    [Pogiblo10]    INT            NULL,
    [Postradalo10] INT            NULL,
    [DateS10]      DATETIME       NULL
);
CREATE TABLE [dbo].[Table11] (
    [Table11ID]    INT            IDENTITY (1, 1) NOT NULL,
    [Adres11]      NVARCHAR (250) NULL,
    [Prim11]       NVARCHAR (250) NULL,
    [Pogiblo11]    INT            NULL,
    [Postradalo11] INT            NULL,
    [DateS11]      DATETIME       NULL
);
CREATE TABLE [dbo].[Table12] (
    [Table12ID] INT            IDENTITY (1, 1) NOT NULL,
    [Prim12]    NVARCHAR (250) NULL,
    [Lojn]      INT            NULL,
    [Byt]       INT            NULL,
    [Spas]      INT            NULL,
    [DateS12]   DATE           NULL
);
CREATE TABLE [dbo].[Table13] (
    [Table13ID] INT  IDENTITY (1, 1) NOT NULL,
    [Nyp]       INT  NULL,
    [Shtorm]    INT  NULL,
    [Oyp]       INT  NULL,
    [Oksion]    INT  NULL,
    [DateS13]   DATE NULL
);
CREATE TABLE [dbo].[Table14] (
    [Table14ID] INT            IDENTITY (1, 1) NOT NULL,
    [Zv60202]   INT            NULL,
    [Prim14]    NVARCHAR (250) NULL,
    [FIO]       NVARCHAR (250) NULL,
    [DateS14]   DATE           NULL
);
CREATE TABLE [dbo].[Table99] (
    [ID]           INT            IDENTITY (1, 1) NOT NULL,
    [Adres1]       NVARCHAR (250) NULL,
    [Prim1]        NVARCHAR (250) NULL,
    [DateS1]       DATETIME       NULL,
    [DateE1]       DATETIME       NULL,
    [Adres2]       NVARCHAR (250) NULL,
    [Prim2]        NVARCHAR (250) NULL,
    [DateS2]       DATETIME       NULL,
    [DateE2]       DATETIME       NULL,
    [Adres3]       NVARCHAR (250) NULL,
    [Prim3]        NVARCHAR (250) NULL,
    [DateS3]       DATETIME       NULL,
    [DateE3]       DATETIME       NULL,
    [Adres4]       NVARCHAR (250) NULL,
    [Prim4]        NVARCHAR (250) NULL,
    [DateS4]       DATETIME       NULL,
    [DateE4]       DATETIME       NULL,
    [Vozd]         NVARCHAR (250) NULL,
    [Vodn]         NVARCHAR (250) NULL,
    [DateS5]       DATE           NULL,
    [Vlag]         NVARCHAR (250) NULL,
    [Davlenie]     NVARCHAR (250) NULL,
    [Veter]        NVARCHAR (250) NULL,
    [t]            NVARCHAR (250) NULL,
    [DateS6]       DATE           NULL,
    [Adres7]       NVARCHAR (250) NULL,
    [Prim7]        NVARCHAR (250) NULL,
    [Pogiblo7]     INT            NULL,
    [Postradalo7]  INT            NULL,
    [DateS7]       DATETIME       NULL,
    [Adres8]       NVARCHAR (250) NULL,
    [Prim8]        NVARCHAR (250) NULL,
    [Pogiblo8]     INT            NULL,
    [Postradalo8]  INT            NULL,
    [DateS8]       DATETIME       NULL,
    [Adres9]       NVARCHAR (250) NULL,
    [Prim9]        NVARCHAR (250) NULL,
    [Pogiblo9]     INT            NULL,
    [Postradalo9]  INT            NULL,
    [DateS9]       DATETIME       NULL,
    [Adres10]      NVARCHAR (250) NULL,
    [Prim10]       NVARCHAR (250) NULL,
    [Pogiblo10]    INT            NULL,
    [Postradalo10] INT            NULL,
    [DateS10]      DATETIME       NULL,
    [Adres11]      NVARCHAR (250) NULL,
    [Prim11]       NVARCHAR (250) NULL,
    [Pogiblo11]    INT            NULL,
    [Postradalo11] INT            NULL,
    [DateS11]      DATETIME       NULL,
    [Prim12]       NVARCHAR (250) NULL,
    [Lojn]         INT            NULL,
    [Byt]          INT            NULL,
    [Spas]         INT            NULL,
    [DateS12]      DATE           NULL,
    [Nyp]          INT            NULL,
    [Shtorm]       INT            NULL,
    [Oyp]          INT            NULL,
    [Oksion]       INT            NULL,
    [DateS13]      DATE           NULL,
    [Zv60202]      INT            NULL,
    [Prim14]       NVARCHAR (250) NULL,
    [FIO]          NVARCHAR (250) NULL,
    [DateS14]      DATE           NULL
);
0
1643 / 1144 / 171
Регистрация: 23.07.2010
Сообщений: 6,794
21.11.2018, 14:09 5
Лучший ответ Сообщение было отмечено aldrow как решение

Решение

Цитата Сообщение от pincet Посмотреть сообщение
очень интересно узнать про Table3-Table13
чувак, сделай одну вместо всей этой непотребщины
1
0 / 0 / 0
Регистрация: 14.12.2016
Сообщений: 12
21.11.2018, 14:54  [ТС] 6
Убрал всю непотребщину.

Переделал код в формах, в хранимых процедурах на запись в табл 99.

В репорте выводит вот такую бяку:
Водопровод :Время происшествияВремя АдресПРимечания 
 19.11.2018_08:0019.11.2018_17:00мирател_8ххххх 
      
 21.11.2018_11:0021.11.2018_13:00чапаевател_мастера_8ххххх 
пустые строки:     
      
Метеообстановка:Датаветертемпературавлажность 
 17.11.20185-215 
пустые строки     
 20.11.20182-529 
 21.11.20187-710 
Все это делаю для того что бы отчете за сутки (за последние 24 часа) было:
см. предыдущее сообщение (там таблица)

И вот вопрос как быть с фильтрацией по дате? Отображать нужно лишь те записи, которые входят в сутки (последние 24 часа). Естественно появившиеся пустые строки в отчете не нужны....
0
1643 / 1144 / 171
Регистрация: 23.07.2010
Сообщений: 6,794
21.11.2018, 15:42 7
таблицу99 надеюсь, тоже исправил? (вопрос о целесообразности оной пока не поднимаю)
0
0 / 0 / 0
Регистрация: 14.12.2016
Сообщений: 12
22.11.2018, 06:07  [ТС] 8
А зачем ее править?
0
1643 / 1144 / 171
Регистрация: 23.07.2010
Сообщений: 6,794
22.11.2018, 09:12 9
зарадидля того чтобы избавиться от полей типа DateS9,DateS10
0
0 / 0 / 0
Регистрация: 14.12.2016
Сообщений: 12
22.11.2018, 11:12  [ТС] 10
В этих полях хранится время аварии на жд, дтп, аварии на авиатранспорте, чс. Если их убрать беда будет.
0
1643 / 1144 / 171
Регистрация: 23.07.2010
Сообщений: 6,794
22.11.2018, 13:36 11
беда уже есть. добавь поле с идентификатором "чья авария". Целесообразность сей таблицы по прежнему не обсуждаем (может, тебе так надо)
0
0 / 0 / 0
Регистрация: 14.12.2016
Сообщений: 12
23.11.2018, 08:40  [ТС] 12
Дай бог тебе здоровья!

В общем сделал отчет, через условия задал вхождение в необходимый промежуток, тем самым все пустые строки скрыл. Костыль, но пойдет.
Visual Basic
1
=Fields!DateS1.Value<=DateAdd("d",-1,Now())
0
23.11.2018, 08:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2018, 08:40
Помогаю со студенческими работами здесь

превратить много функций в одну...
Вот вопрос, к примеру я хочу создать свою функцию, в которую прописать функции к примеру, Спрятать...

Много действий на одну кнопку
Здравствуйте! Есть такое задание: решить уравнение по схеме горнера, уравнение любой степени. Есть...

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

Поместить в одну dll много кода
Есть простой код: procedure TForm1.Button1Click(Sender: TObject); begin ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru