Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628

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

14.01.2013, 15:18. Показов 3747. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru