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

Вниз

Можно ли сделать такой запрос   Найти похожие ветки 

 
NOV   (2003-04-22 16:31) [0]

Проветствую All!
Сразу к делу
Есть две таблицы связь многие ко многим через третью таблицу

Table AUTOR
ID идентификатор
Name имя
... другие поля неважно


Table Books
ID идентификатор
Name имя
... другие поля неважно

Table AutorBooks
ID_B идентификатор книги
ID_A идентификатор автора

ВНИМАНИЕ ВОПРОС!
Можно ли построить SQL запрос который бы выдавал
в одной записи
Наименование книги и всех авторов этой книги
типа группировка а поле авторов суммировать

Заранее спасибо!


 
Дмитрий Баранов   (2003-04-22 16:35) [1]

Написать функцию. MS SQL или Oracle это позволяют.


 
Жук   (2003-04-22 16:44) [2]

Что-то не очень понятно. Сколько полей в записи должно быть ?


 
NOV   (2003-04-22 16:44) [3]

Это понятно, это любая база позволяет,
но в этом случае придеться представлять через дополнительную таблицу, вопрос не как сделать, я сделал на делфи через вычисляемое поле
ВОПРОС АКАДЕМИЧЕСКИЙ МОЖНО ЛИ С ПОМОЩЬЮ SQL


 
NOV   (2003-04-22 16:46) [4]

TO Жук
два поля в одном название книги
в другом фамилии всех авторов этой книги


 
Johnmen   (2003-04-22 16:51) [5]

>ВОПРОС АКАДЕМИЧЕСКИЙ МОЖНО ЛИ С ПОМОЩЬЮ SQL

Одним натуральным запросом - нет.



 
Жук   (2003-04-22 16:52) [6]

select b.name,a.name,
(select count(ab1.id) from AutorBooks ab1 where ab1.id_b=b.id) as awtory
from autor a,books b, autorbooks ab
where b.id=ad.id_b and ab.id_a=a.id
order by b.name

Тут три. :-(


 
Дмитрий Баранов   (2003-04-22 16:52) [7]

нельзя, так как для строк нет аггрегирующих функций.


 
Жук   (2003-04-22 16:56) [8]

Интересно, зачем это надо ?


 
NOV   (2003-04-22 17:07) [9]

TO ЖУК
Немного не то этот запрос выдает количество авторов
а мне нужны их фамилии сцепленные вместе допустим через запятую
КАК зачем, чтобы в одной записи все авторы были

TO Johnmem
А ненатуральным, вложеным, любым но с помощью SQL


 
Соловьев   (2003-04-22 17:13) [10]

СУБД?
ХП


 
Johnmen   (2003-04-22 17:17) [11]

>NOV (22.04.03 17:07)

Под "натуральным" имел в виду не степень сложности и вложенности, а тот, который обращается к таблицам и только к ним. (не к ХП или ВЬЮ).


 
Дмитрий Баранов   (2003-04-22 17:24) [12]

NOV (22.04.03 17:07)
Один шут курсор для подзапроса надо объявлять-открывать-фетчить и склеивать в результирующую строку.


 
NOV   (2003-04-22 17:35) [13]

TO Johnmen
Хорошая идея
Сейчас в Accessе попробовал так
сначала перекресный запрос где: строки -> книги,
столбцы-> авторы,
значения-> фамилии
а потом по нему второй запрос склеивая всех авторов
почти то, что надо, но если будут добавляться авторы
то как обновлять второй запрос там строго прописано
что складыват :(
Еще мысли есть?



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

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

Наверх





Память: 0.47 MB
Время: 0.006 c
7-34630
AlexRush
2003-03-10 17:09
2003.05.12
Сетевой адаптер - отправка данных в сеть


3-34365
Ann
2003-04-22 15:22
2003.05.12
date


11-34381
zetta
2002-08-02 10:59
2003.05.12
программа расшибается при попытке закрытия


6-34527
RAA
2003-03-06 09:09
2003.05.12
Как написать сервер времени? нужно по зарез


14-34607
Marser
2003-04-18 15:16
2003.05.12
Премия имени IronHawk!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский