Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с SQL [D6, Paradox]


Страницы:   1 2

progger ©   (2002-08-23 15:56:00) 

Добрый день, ув. знатоки, не могли бы вы мне помочь, дело в том, что я делаю запрос SQL:
select "sub1.db".TDate,
"sub2.db".TDate,
"sub2".TWhat
from "sub1.db",
"sub2.db"
where "sub1.db".Conf="sub2.db".Conf
а оно мне выдает декартово произведение этих двух таблиц, хотя кол-во строк в каждой из них одинаково.
Заранее благодарен.


ЮЮ   (2002-08-26 09:10:00) [1]

>Не обязательно, "не допущен" это вполне может быть NULL
Вряд ли он будет допущен, если он круглый NULL :-). К тому же у автора "вообщем "до отказа" заполнено только поле conf" . Может в этом и причина отказа? :-)


Reindeer Moss Eater   (2002-08-26 09:01:00) [2]

>ЮЮ
Не обязательно, "не допущен" это вполне может быть NULL. Хотя твоя идея очень мне понравилась :)


ЮЮ   (2002-08-26 08:59:00) [3]

>Reindeer Moss Eater (26.08.02 08:31)
У автора: where "sub1.db".Conf="sub2.db".Conf

Следовательно, он хочет попарно объединить "допущен"-"допущен" и "недопущен"-"недопущен". Тогда уж лучше объединять "допущен"-"недопущен", чтобы "допущенный" помог "недопущенному" получить допуск :-)


Reindeer Moss Eater   (2002-08-26 08:31:00) [4]

>ЮЮ Да то это поле! :)))
Автор просто хочет получить список всех возможных комбинаций из 2 студентов, допущенных к экзаменам. В каждой паре у него один допущен к одному, а другой - к другому экзамену.


ЮЮ   (2002-08-26 06:04:00) [5]

Vlad1 © (25.08.02 13:32)
Чудак (26.08.02 05:35)
Прежде чем советовать, особенно, когда "сам недавно начал сукелем заниматься", посмотрите, что пишет Автор:

progger © (23.08.02 16:17)
вообщем conf - это допущен ли студент к контрольной

т.о. conf - вовсе не то поле, по которой следует связывать две таблицы.


Чудак   (2002-08-26 05:35:00) [6]

Попробуй использовать параметры компонента Query типа если например у тебя главная база ("Sub1.db" и Query1), а вспомогательная ("Sub2.db" и Query2) то задай для Query2 св-во DataSource = Query1. И значение SQL напиши приблизительно так:
"select (нужные поля) from sub2 where conf=:conf"
и в св-ве Param компонента Query в редакторе должен быть этот параметр.
Гарантию что сработает не дам (так как сам недавно начал сукелем заниматься), но попробуй может получится.
Если получиться то скажи получилось ли.


Vlad1   (2002-08-25 13:32:00) [7]

Попробуй:
select TDate,
TWhat
from "sub1.db",
"sub2.db"
where "sub1.db".Conf="sub2.db".Conf


MsGuns   (2002-08-24 19:02:00) [8]

Можно, наверное, это сделать одним запросом (я не экстраверт в секюэле), но я такие вещи решаю в несколько последовательных шагов с сохранением промежуточных рез-тов для использования в следующем шаге.


ЮЮ   (2002-08-24 07:21:00) [9]

where "sub1.db".StudID="sub2.db".StudID,
где StudID - уникальный индекс студента, который, надеюсь :-), есть в обеих таблицах


Hro   (2002-08-23 23:47:00) [10]

Может точно скажешь что те надо, а мы тут обмозгуем.


progger   (2002-08-23 18:16:00) [11]

мне не нравится, что результат объединения - произведение этих таблиц


Reindeer Moss Eater   (2002-08-23 17:08:00) [12]

Ты же объединил уже, что именно тебе не нравится? :)


progger   (2002-08-23 17:02:00) [13]

ну в принципе это главное - шоб не было фигни. Две таблицы с сопоставимыми типами поле нужно объединить в Query. Как???


Val   (2002-08-23 16:59:00) [14]

..и количество строк здесь не причем.
а задачу все-таки постарайся сформулировать, а то получается надо сделать хоть что-то, чтоб фигня не получилась :)


Reindeer Moss Eater   (2002-08-23 16:46:00) [15]

Не объединяй таблицы по полю "допущен ли студент к контрольной"


progger   (2002-08-23 16:45:00) [16]

Ладно, сформулирую вопрос конкретнее:
есть две(или более) таблицы, с одинаковым кол-вом строк. Необходимо объединить их с помощью запроса SQL так, чтобы результат не был декартовым произведением этих таблиц.
Помогите, пожалуйста - очень надо...


Reindeer Moss Eater   (2002-08-23 16:31:00) [17]

Reindeer Moss Eater (23.08.02 16:04)
Если все поля Conf содержат одно значение, то произведение обеспечено.


Val   (2002-08-23 16:27:00) [18]

естественно, вам нужно изменить условие, но существует недостаток информации - как именно соединять таблицы, кто туда должен попасть? сформулируйте задачу конкретнее.


Reindeer Moss Eater   (2002-08-23 16:25:00) [19]

А смысл объединения по полю "допущен ли студент к контрольной" ??????????


progger   (2002-08-23 16:17:00) [20]

вообщем conf - это допущен ли студент к контрольной
TDate - дата, когда был выставлен балл
Twhat - За какой вид работы балл
sub1.db - один предмет, напр. Математика
sub3.db - другой предмет, напр. Физика
Кол-во строк в обеих таблицах одинаково, но количество дат - разное, вообщем "до отказа" заполнено только поле conf, и мне нужно сединить эти две таблицы так, чтобы не было произведения...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо