Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
1 / 1 / 0
Регистрация: 25.09.2012
Сообщений: 36

Запрос SQL на выборку из множества таблиц

07.10.2012, 16:54. Показов 3913. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Начал писать программу, которая взаимодействует с БД SQL. Но в процессе столкнулся с некоторыми проблемами.
1. Нужно составить запрос к множеству таблиц (100 и более). Таблицы все однотипные, т.е. столбцы имеют одинаковое название и один из столбцов заполняется временем, которое одинаковое для всех таблиц. Суть запроса в том, чтобы выводить в dataGridView только те строки, которые отвечают заданному условию (время добавления в таблицу = текущему времени, для остальных столбцов: если значение =1 то выводить в dgv).
2. Этот запрос должен выполнятся каждые 10 сек, т.е. каждые 10 сек в dgv старые записи должны очищаться и записываться результаты следующего выполнения запроса.
Подскажите, как составить такой запрос? Или лучше делать отдельный запрос для каждой таблицы?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.10.2012, 16:54
Ответы с готовыми решениями:

SQL запрос на выборку из 2х таблиц
Здравствуйте! У меня есть 2 таблицы приход и расход товара, нужно сделать выборку по приходу и расходу. По отдельности если делать выходит...

SQL запрос в VBA на выборку данных из нескольких таблиц mdb
Добрый день. Есть база mdb с несколькими таблицами: Регистр - общая таблица с хранением операций деятельности предприятия. Поля...

Запрос на выборку из 2х таблиц
Доброго времени суток! Столкнулся с проблемой в написании запроса MySQL. Существует 2 таблицы: ...

13
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
07.10.2012, 19:12
В чем проблема?
0
1 / 1 / 0
Регистрация: 25.09.2012
Сообщений: 36
07.10.2012, 19:58  [ТС]
Цитата Сообщение от Петррр Посмотреть сообщение
В чем проблема?
ну вот допустим:
SQL
1
2
3
SELECT *FROM Таблица_1
WHERE TIME = CURRENT_TIMESTAMP
AND K1+K2+K3+K4>0
если написанное выше правильно, то как это сделать не для одной таблицы, а для 100 или более таблиц?
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
07.10.2012, 20:07
T-SQL
1
2
3
4
5
SELECT value 
FROM   table1 
UNION ALL 
SELECT value 
FROM   table1
0
1 / 1 / 0
Регистрация: 25.09.2012
Сообщений: 36
07.10.2012, 20:26  [ТС]
можно как-то по-подробнее о том что вы написали? Или где об этом почитать. Мне сложновато разобраться.
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
07.10.2012, 20:32
http://msdn.microsoft.com/ru-r... 80026.aspx
1
1 / 1 / 0
Регистрация: 25.09.2012
Сообщений: 36
08.10.2012, 08:57  [ТС]
А как быть с обновлением записей в dgv?
0
35 / 35 / 1
Регистрация: 14.01.2011
Сообщений: 111
08.10.2012, 09:03
помимо UNION можно использовать JOIN, в зависимости от ситуации.

при любом запросе, ты получишь таблицу

в dgv в свойствах колонок есть свойство DataPropertyName, оно отвечает какую колонку из полученной таблицы отображать
1
1 / 1 / 0
Регистрация: 25.09.2012
Сообщений: 36
08.10.2012, 12:53  [ТС]
ну с самим запросом я более-менее разобрался, вроде бы пишу все правильно. но вот появилась другая проблема. при выполнении запроса получаю такое исключение: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. Что с этим делать?

Добавлено через 3 часа 1 минуту
появилась новая проблема.

SQL
1
2
3
SELECT *FROM Таблица_1
WHERE TIME = CURRENT_TIMESTAMP
AND K1+K2+K3+K4>0
раньше срабатывала проверка по дате. сейчас же, выводит просто все строки где сумма по столбцам больше 1. подскажите, почему так и как это исправить?
пробовал уже и GETDATE, результат тот же.
0
1 / 1 / 0
Регистрация: 25.09.2012
Сообщений: 36
08.10.2012, 14:59  [ТС]
В общем, больше одной таблицы программа обрабатывать не хочет. Одну легко и то не всегда. 2 и более таблицы - исключение с таймаутом. Сделал уже хранимую процедуру в БД, но результат тот же. Уже даже не знаю, что делать.
0
35 / 35 / 1
Регистрация: 14.01.2011
Сообщений: 111
09.10.2012, 05:35
1) какая база данных?
2) какой запрос?
3) как данные вставляешь в DGV?
0
1 / 1 / 0
Регистрация: 25.09.2012
Сообщений: 36
09.10.2012, 09:03  [ТС]
1. БД SQL
2.
SQL
1
2
3
4
5
6
7
SELECT Times, k1, k2, k3, k4
FROM dbo.Table1
WHERE Times = CURRENT_TIMESTAMP AND ((k1 > 0) OR (k2 > 0) OR (k3 > 0) OR (k4 > 0))
UNION
SELECT Times, k1, k2, k3, k4
FROM dbo.Table2
WHERE Times = CURRENT_TIMESTAMP AND ((k1 > 0) OR (k2 > 0) OR (k3 > 0) OR (k4 > 0))
это не весь запрос, там еще несколько штук юнионом объединено.
3.
C#
1
2
3
4
5
            DataSet ds = new DataSet("ds");
            SqlDataAdapter da = new SqlDataAdapter(q1);
            da.SelectCommand = q1;
            da.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
09.10.2012, 13:58
ghost_style, а в чем проблема? приведенный код удовлетворяет твоим условиям

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от ghost_style Посмотреть сообщение
таблиц 100 и более. Таблицы все однотипные,
факт неправильного проектирования

0
1 / 1 / 0
Регистрация: 25.09.2012
Сообщений: 36
09.10.2012, 15:58  [ТС]
Проблема была в том, что после запуска запроса все время выскакивали исключения таймаута. Сейчас уже проблема решена, переделал код и все вроде робит
Спасибо всем за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.10.2012, 15:58
Помогаю со студенческими работами здесь

Запрос на выборку из связанных таблиц
Как настроить запрос на выборку из двух связанных таблиц так, чтобы в результате были ВСЕ записи из первой таблицы, даже те которым не...

Запрос на выборку из двух таблиц
Всем доброго времени суток. Помогите пожалуйста составить SQL-запрос. Есть две таблицы: 1)security с полями kod, login, pass 2)today...

Запрос на выборку из нескольких таблиц
Добрый день,ребята. Помогите пожалуйста: почему выдает пустые значения и что и где надо исправить? Через UNION данную выборку...

Запрос на выборку из двух таблиц
Люди, беда! Не пойму, как реализовать. Есть три таблицы, с друг другом связанные. Есть форма "Добавить художника" с двумя...

Запрос на выборку из нескольких таблиц
Добрый день! Не могу совладать с запросом. Есть 3 таблицы с кучей полей, выделю только ключевые из них: Таблица Klyuch_tb ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru