161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628

Выборка MIN, MAX из нескольких таблиц

14.01.2013, 15:18. Показов 3782. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Есть несколько одинаковых таблиц с именами типа Archive<n>, где <n> - это id записи из основной таблицы. Нужно выбрать минимальную и максимальную дату из таблиц Archive<n>.

Делаю так:

Сначала выбираю из основной таблицы Id. Затем в цикле составляю имена таблиц. Как мне действовать дальше, после этого?

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
DECLARE @Id INT
DECLARE @MIN datetime
DECLARE @Days INT
 
DECLARE @CURSOR CURSOR
 
SET @CURSOR  = CURSOR SCROLL
FOR SELECT [Id]  FROM  [dbo].[Cameras]
  
OPEN @CURSOR
 
FETCH NEXT FROM @CURSOR INTO @Id
 
WHILE @@FETCH_STATUS = 0
BEGIN
 
    DECLARE @TableName VARCHAR(255)
    SET @TableName = 'ArchiveCam' + CONVERT(VARCHAR, 100 + @Id) /* Составленное имя таблицы */
    
    IF EXISTS (SELECT * FROM sys.objects WHERE name = @TableName)
    BEGIN
        
        /* здесь я застрял */
        
    END
 
    FETCH NEXT FROM @CURSOR INTO @Id
END
 
CLOSE @CURSOR
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.01.2013, 15:18
Ответы с готовыми решениями:

SQL выборка из нескольких таблиц
Существует 2 таблицы, &quot;result&quot; и &quot;sportsman&quot;, заполненные посредством &quot;INSERT INTO&quot;. Необходимо Вычислить возраст спортсменов, которые...

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

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

6
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
14.01.2013, 15:50
Id должно быть полем одной-единственной таблицы Archive.
Автор же описанной структуры БД непонятно каким местом думал.

Однако, и для этой структуры выбран самый тормозной метод,
причём даже курсор выбран самый медленный и ресурсоёмкий.

Динамический SQL сформировать и выполнить - и то лучше было бы.
0
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628
14.01.2013, 16:00  [ТС]
iap, раньше была одна таблица Archive. Разделили на на отдельные таблицы её, т. к. в ней накапливалось большое количество строк (до 80 000 000).
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
14.01.2013, 16:07
Цитата Сообщение от VtaMC Посмотреть сообщение
iap, раньше была одна таблица Archive. Разделили на на отдельные таблицы её, т. к. в ней накапливалось большое количество строк (до 80 000 000).
И чему же это мешало?
0
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628
14.01.2013, 16:12  [ТС]
Переполнялся журнал транзакций, при очистке таблицы.

Code
1
The transaction log for database 'FFSDatabase' is full.
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
14.01.2013, 16:31
Цитата Сообщение от VtaMC Посмотреть сообщение
Переполнялся журнал транзакций, при очистке таблицы.

Code
1
The transaction log for database 'FFSDatabase' is full.
Во-первых, чистить таблицу в таком случае можно не сразу всю, а по частям.
Каждую часть в отдельной транзакции.

Во-вторых, если сервер >SQL2005, то можно использовать секционирование таблицы и удаление секций:

http://www.sql.ru/articles/mss... s.shtml#58
2
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
17.01.2013, 19:07
Тупо в лоб:
T-SQL
1
2
3
4
5
6
7
select min(dtn)date_min, max(dtx) date_max
from (
  select min(myDate) dtn, max(myDate)dtx from tab1
  union select min(myDate) dtn, max(myDate)dtx from tab2
  ...
  union select min(myDate) dtn, max(myDate)dtx from tabN
) u
годится?

Добавлено через 3 часа 41 минуту
был невнимателен, не заметил
Цитата Сообщение от VtaMC Посмотреть сообщение
с именами типа Archive<n>, где <n> - это id записи из основной таблицы
Тогда так:
SQL
1
2
3
4
5
6
7
CREATE TABLE #total (n DATE, x DATE)
OPEN @CURSOR
...
        /* здесь я застрял */
        EXEC('insert into #total (n,x) select MIN(myDate), MAX(myDate) from '+@TableName)
...
SELECT MIN(n) date_min, MAX(x) date_max FROM #total
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.01.2013, 19:07
Помогаю со студенческими работами здесь

Выборка данных из нескольких таблиц по условиям
Дамы и господа! Есть несколько таблиц, пускай 2. В этих таблицах в разных столбцах находятся даты. ключ - столбец num Нужно...

Выборка данных из нескольких таблиц
Есть две таблицы. Одна хранит в себе список объектов(поля: object_id,object_name). Вторая - список статусов данных...

Выборка из нескольких таблиц одновременно
Можно ли выбрать данные из нескольких таблиц одновременно? Что-то типа 'Select * from Tab1, Tab2, ... TabN'

Процедура: Даны три числа a,b,c. Вычислить (max(a,b)+min(a,c))/(max(b,c)*min(a,b))+max(min(a,b),min(b,c))
Даны три числа a,b,c. Вычислить (max(a,b)+min(a,c))/(max(b,c)*min(a,b))+max(min(a,b),min(b,c)) с помощью использования процедур.

Описать функцию F (a, min, max ) определяющую значение максимального max и минимального min элементов этого массива
Помогите с задачкой! плиз! Для вещественного массива а, описать функцию F (a, min, max ) определяющую значение максимального max и...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru