Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запрос из трех таблиц  [new]
Dia28
Member

Откуда:
Сообщений: 33
Здравствуйте помогите написать запросы в один, никак не получается их соединить


Select sum(Количество_экземпляров)Общее_число_газет ,Номер_типографии from Типографии Group by Номер_типографии Having Номер_типографии=200
Select Название,Шифр,ФИО from Издание where Шифр=ANY(select Шифр from Типографии where Номер_типографии=200)
select Количество_экземпляров from Типографии where Номер_типографии=200;
31 мар 13, 13:19    [14118348]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из трех таблиц  [new]
хмммм
Guest
Dia28,

ну, во-первЫх, я смог насчитать только 2 таблицы.(Типографии,Издание)
во-вторых, непонятно, а в каком виде должна оказать информация после "соединения" в один запрос?
например, 1 и 3 запрос можно представить в таком виде:
select Количество_экземпляров, sum(Количество_экземпляров)over()Общее_число_газет
  from Типографии
 where Номер_типографии=200
31 мар 13, 13:31    [14118378]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из трех таблиц  [new]
Dia28
Member

Откуда:
Сообщений: 33
Нужно чтобы результаты трех запросов в одной таблице были
31 мар 13, 13:42    [14118393]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из трех таблиц  [new]
хмммм
Guest
Dia28,

любопытно, и что за поля должны быть у этой одной таблицы?
31 мар 13, 13:45    [14118396]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из трех таблиц  [new]
asd24
Member

Откуда:
Сообщений: 47
Смысла всей этой идеи не уловил, но вот как решение:
SELECT	SUM(Количество_экземпляров) as Общее_число_газет,
			Номер_типографии,
			NULL AS 'Название',
			NULL AS 'Шифр',
			NULL AS 'ФИО',
			NULL AS 'Количество_экземпляров'
FROM Типографии 
GROUP BY Номер_типографии 
HAVING Номер_типографии = 200
	UNION ALL
SELECT	NULL AS 'Общее_число_газет',
			NULL AS 'Номер_типографии',
			Название,
			Шифр,
			ФИО
			NULL AS 'Количество_экземпляров'
FROM Издание 
WHERE Шифр = ANY(SELECT Шифр FROM Типографии WHERE Номер_типографии=200)
	UNION ALL
SELECT	NULL AS 'Общее_число_газет',
			NULL AS 'Номер_типографии',
			NULL AS 'Название',
			NULL AS 'Шифр',
			NULL AS 'ФИО',
			Количество_экземпляров 
FROM Типографии 
WHERE Номер_типографии = 200;
31 мар 13, 14:26    [14118446]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из трех таблиц  [new]
кхе,
Guest
asd24
Смысла всей этой идеи не уловил, но вот как решение:

не-не,
когда ТС говорит "в одной таблице" - наверняка, нужно понимать как "что-то" одним запросом

а "что-то" - имхо, вот это - 14116324
просто она (это жж - она ?) за прошедшие сутки деградировала окончательно, и уже несправляется не только с запросами, а и с "формулировками" :)
31 мар 13, 14:53    [14118497]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из трех таблиц  [new]
Dia28
Member

Откуда:
Сообщений: 33
Почему сразу деградировала, я только начинаю разбираться с запросами,читаю как их записывать,но многое ещё не понятно, вот и прошу помощи(я ж не прошу написать совсем за меня я пробую, задаю вопрос и всё равно же пытаюсь дальше написать сама
31 мар 13, 21:06    [14119157]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из трех таблиц  [new]
Хмммм
Guest
Dia28,

Так Вы можете сформулировать, что же Вам нужно получить?
Или Ваш вопрос больше не актуален?
31 мар 13, 21:09    [14119170]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из трех таблиц  [new]
Dia28
Member

Откуда:
Сообщений: 33
Актуален конечно,

Необходимо вывести с помощью одного запроса результат sum(Количество_экземпляров),Название,Шифр,ФИО,Количество_экземпляров

по указанному номеру_типографии

К сообщению приложен файл. Размер - 50Kb
31 мар 13, 21:28    [14119228]     Ответить | Цитировать Сообщить модератору
 Re: Запрос из трех таблиц  [new]
Хмммм
Guest
Dia28,

Ну ежели связь между типографиями и изданиями по ширф+номер типографии 1:1, то можно например так.
Select sum(t.Количество_экземпляров)over(),i.Название,i.Шифр,i.ФИО,t.Количество_экземпляров
  From Типографии t
  Join Издание i 
    On i.Номер_типографии =t.Номер_типографии
   And i.Шифр = t.Шифр
 Where t.Номер_типографии = 200
 


Только вот, оно ли это.
31 мар 13, 22:13    [14119327]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить