Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложный запрос 
:(
    Опции темы
zss
Дата 17.5.2005, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



Что-то не получается создать запрос smile

есть таблица
Код

CREATE TABLE A(
    id INT,
    ....
)


id - уникален

вторая таблица
Код

CREATE TABLE B(
    aID INT,
    begin INT,
    end INT,
    ....
)


A и В связаны по A.id
begin и end - диапазон значений для каждого id (причем их может быть несколько)
тоесть для примера
Код

id=1:
    begin = 0
    end = 9
id=1
    begin = 10
    begin = 19
id=2
    begin = 100
    begin = 110


Третья таблица
Код

CREATE TABLE С(
    ....
    time DATETIME,
    value INT;
    ....
)


С никак не связана ни с А ни с В.

Нужно подсчитать количество записей в С, где timeMoment находится в заданном интервале
и value принадлежит хотя бы одному диапазону значений для определенного A.id

В голову пришло только одно - объединить A и B
Код

SELECT A.id, B.begin, B.end FROM A INNER JOIN B ON A.id = B.aID WHERE A.id = "значение"


В результате получится таблица
Код

1   0     9
1   10  19


Но как теперь проверить принадлежность С.value хотябы одному диапазону значений 0...9 или 10..19

P.S. может BETWEEN работает со списками ?

PM MAIL ICQ   Вверх
Akina
Дата 17.5.2005, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 454



Таблица А тебе фактически не нужна - чем отличается
Код

SELECT A.id, B.begin, B.end

от
Код

SELECT B.id, B.begin, B.end

? да ничем... как я понимаю, нет такого чтобы некий ID был в таблице В, но отсутствовал в таблице А.

Код

SELECT id, begin, end, time, value
FROM B, C
WHERE (time BETWEEN "НачалоПериода" AND "Конецпериода")
      AND
      (value BETWEEN begin AND end);

Добавлено @ 12:42
Если возможны множественные вхождения - реализуй DISTINCT.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
zss
Дата 17.5.2005, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



Спасибо - попробую
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.