Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];

Вниз

sql   Найти похожие ветки 

 
gestern   (2003-12-09 21:26) [0]

Что-то не то с запросом. Есть 2 таблицы DIREKTOR и FOTO. Поля у них одинаковые. Мне нужно вытащить из них данные. Вот скрипт:
SELECT * from DIREKTOR , FOTO where(DIREKTOR.DOK="""+combobox3.Text+""")and(FOTO.DOK="""+combobox3.Text+""")";
А он мне пустое множесто в ответ. Подскажите где ошибся?


 
Zacho   (2003-12-09 22:04) [1]

Во первых, в запросах к нескольким таблицам всегда явно указывай алиасы таблиц, не совпадающие с именами таблиц, т.е. что-то типа SELECT ... from DIREKTOR D , FOTO F where(D.DOK="""+combobox3.Text+""")and(F.DOK="""+combobox3.Text+""")";
Во-вторых, перед выполнением запроса (Open или что там у тебя) c помощью, например, ShowMessage посмотри получившийся текст запроса и если после этого вопрос не решится - приведи его здесь. А то нам же не видно, что у тебя в combobox3.Text :-)


 
me   (2003-12-09 22:04) [2]

SELECT * from DIREKTOR where DOK="""+combobox3.Text+"""
union
SELECT * from FOTO where DOK="""+combobox3.Text+"""


 
Zacho   (2003-12-09 22:25) [3]


> me (09.12.03 22:04) [2]

А это уже совсем другой запрос. UNION и INNER JOIN (пусть даже не явный, как у автора вопроса) - все-таки совершенно разные вещи. Впрочем, возможно автору требовался именно UNION, но так это или нет - знает только он :)


 
gestern   (2003-12-09 22:38) [4]


> SELECT * from DIREKTOR where DOK="""+combobox3.Text+"""
> union
> SELECT * from FOTO where DOK="""+combobox3.Text+"""

Пишет Data type unknown


 
Zacho   (2003-12-09 22:43) [5]


> gestern (09.12.03 22:38) [4]

Все-же, что именно надо, UNION или JOIN ? Если JOIN, то см. [1]
Телепатов нет, приводи более подробную информацию.


 
gestern   (2003-12-09 23:07) [6]

Надо из 11 таблиц с одинаковыми названиями полей вытащить данные по текстовому полю DOK, с текстом из комбобокса. Подскажите как это проще сделать?


 
gestern   (2003-12-09 23:10) [7]

procedure TForm1.ComboBox3Change(Sender: TObject);
var
sql:string;
begin
sql:="SELECT * from DIREKTOR D, FOTO F where (D.DOK="""+combobox3.Text+""")or(F.DOK="""+combobox3.Text+""")";
IBDataset14.Close;
IBDataset14.SelectSQL.Clear;
IBDataset14.SelectSQL.Add(sql);
IBDataset14.Open;
IBDataset14.First;
end;
Так работает только вместо 2 записей(их пока в таблице только 2)выдеёт 2*n записей, где n формируется не знамо как?


 
Zacho   (2003-12-09 23:19) [8]

Все-таки пиши более вразумительно. Хотя бы приведи структуру таблиц, примерные данные в таблицах, и желаемый результат запроса. А то просто нифига не понятно, что есть и что надо получить.


 
Maniac   (2003-12-09 23:34) [9]

Добавь в Where (d.dok=f.dok)


 
gestern   (2003-12-10 00:01) [10]


> Все-таки пиши более вразумительно. Хотя бы приведи структуру
> таблиц, примерные данные в таблицах, и желаемый результат
> запроса. А то просто нифига не понятно, что есть и что надо
> получить.

Медицинский центр. 11 таблиц для записи в 11 кабинетов.Поля везде одинаковые.
Поля: id-понятно
fam-фамилия(пациента)
nam-имя(пациента)
tel-тел(пациента)
proz-процедура
dok-фамилия доктора проводящего процедуру
appar-апарат с пом. которого проводят процедуру
vremya-время записи
choslo-дата записи
zena-стоимость процедуры
Нужно в конце дня узнать сколько заработал доктор, доктор может делать процедуры в разных кпбинетах. Т.е. надо запросить по 11 таблицам по полю dok фамилию доктора, а по полю chislo-сегодняшнюю дату и просуммировать данный из полей zena этих таблиц. Надеюсь удалось изложить лучше. Так как это всё-таки проще сделать?


 
Zacho   (2003-12-10 00:21) [11]

Проще - сделать две (а может и одну) таблицу вместо 11-ти. Читайте Дейта. И осознайте, чем "декомпозиция ограниченной выборкой" (Ваш вариант) хуже "декомпозиции проекцией" (общепринятый вариант декомпозиции).
А с такой архитектурой БД - imho, только ХП с 11-ю select-ами и суммированием суммы (во тавтология !) между ними.
Или то же самое на клиенте.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
7-12173
Dima_dvp
2003-10-23 03:38
2004.01.05
Global HOOK без DLL.. Это как? Или вообще ни хук?


7-12170
Vlad25
2003-10-26 13:10
2004.01.05
Как связать программу с определенным типом файлов?


3-11802
_san_
2003-12-08 18:09
2004.01.05
не работает BDE под XP


3-11785
www
2003-12-09 13:40
2004.01.05
TQuery design time и run time


9-11758
irenf
2003-06-10 16:58
2004.01.05
Смотри на курсор





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский