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

Откуда:
Сообщений: 5
Б)Создать выборку следующего вида
fio(Фамилия), name(Департамент), summa(Зарплата)
В) Создать выборку следующего вида
fio(Фамилия), name(Департамент), summa(Зарплата), avrgsum (средняя з/п по департаменту)

К сообщению приложен файл. Размер - 12Kb
24 авг 11, 09:26    [11168916]     Ответить | Цитировать Сообщить модератору
 Re: Помогите!плиз!SELECT  [new]
ShSerge
Member

Откуда: ʚонɔ dиw
Сообщений: 24911
А где работают Сидоров, Ленин и Коморов?
24 авг 11, 09:34    [11168956]     Ответить | Цитировать Сообщить модератору
 Re: Помогите!плиз!SELECT  [new]
SAQ1
Member

Откуда:
Сообщений: 5
ShSerge,

они пока null
24 авг 11, 09:36    [11168962]     Ответить | Цитировать Сообщить модератору
 Re: Помогите!плиз!SELECT  [new]
ShSerge
Member

Откуда: ʚонɔ dиw
Сообщений: 24911
SAQ1
ShSerge,

они пока null

А среднюю зарплату по какому департменту им считать?
24 авг 11, 09:38    [11168971]     Ответить | Цитировать Сообщить модератору
 Re: Помогите!плиз!SELECT  [new]
SAQ1
Member

Откуда:
Сообщений: 5
ShSerge,

им не надо считать, только для тех, кто есть в таблице Payment и Depart, т.е. Иванов, Петров, Семенов, Галкин
24 авг 11, 09:42    [11168990]     Ответить | Цитировать Сообщить модератору
 Re: Помогите!плиз!SELECT  [new]
ShSerge
Member

Откуда: ʚонɔ dиw
Сообщений: 24911
Не уверен. Не проверял.
SELECT p.fio,d.name,pm.summa,
	(SELECT AVG(pm1.summa) FROM payment pm1
	INNER JOIN person p1 ON pm1.id_person=p1.id_person
	INNER JOIN depat d1 ON p1.id_depat=d1.id_depat
	WHERE d1.id_depat=d.id_depart
	GROUP BY d1.id_depat) AS avrgsum
FROM person p
INNER JOIN depat d ON p.id_depat=d.id_depat
INNER JOIN payment pm ON p.id_person=pm.id_person
24 авг 11, 10:41    [11169311]     Ответить | Цитировать Сообщить модератору
 Re: Помогите!плиз!SELECT  [new]
SAQ1
Member

Откуда:
Сообщений: 5
ShSerge,

это ответ на в) ?
а что такое pm1 и d1 ?
24 авг 11, 11:03    [11169498]     Ответить | Цитировать Сообщить модератору
 Re: Помогите!плиз!SELECT  [new]
ShSerge
Member

Откуда: ʚонɔ dиw
Сообщений: 24911
SAQ1
ShSerge,

это ответ на в) ?
а что такое pm1 и d1 ?

На В конечно же. На Б и отвечать было не интересно:
SELECT p.fio,d.name,pm.summa
FROM person p
INNER JOIN depat d ON p.id_depat=d.id_depat
INNER JOIN payment pm ON p.id_person=pm.id_person
А то, что Вы спрашиваете - алиасы таблиц, то есть про pm1: SELECT AVG(pm1.summa) FROM payment pm1,
ф ьщжно было написать SELECT AVG(pm1.summa) FROM payment AS pm1.
24 авг 11, 11:23    [11169652]     Ответить | Цитировать Сообщить модератору
 Re: Помогите!плиз!SELECT  [new]
SAQ1
Member

Откуда:
Сообщений: 5
Спасибо, ShSerge!
24 авг 11, 11:57    [11170014]     Ответить | Цитировать Сообщить модератору
 Re: Помогите!плиз!SELECT  [new]
shutkov.mihail
Member

Откуда: Что-то постоянно плывет по Неве... Я в СПб сижу на траве..
Сообщений: 403
with person as (
select 1 as id_person,'Ivanov' as fio,1 as id_depat from dual union
select 2 as id_person,'Ptrov' as fio,1 as id_depat from dual union
select 3 as id_person,'Sidorov' as fio,null as id_depat from dual union
select 4 as id_person,'Fedorov' as fio,2 as id_depat from dual union
select 5 as id_person,'Semenov' as fio,2 as id_depat from dual union
select 6 as id_person,'Lenin' as fio,null as id_depat from dual union
select 7 as id_person,'Komorov' as fio,null as id_depat from dual union
select 8 as id_person,'Galkin' as fio,3 as id_depat from dual),
depat as (
select 1 as id_depat, 'Testirovanija' as name from dual union
select 2 as id_depat, 'Nastrojki' as name from dual union
select 3 as id_depat, 'Razrabotki' as name from dual),
payment as (
select 1 as id_person, 100 as summa from dual union
select 2 as id_person, 100 as summa from dual union
select 3 as id_person, 200 as summa from dual union
select 8 as id_person, 300 as summa from dual union
select 5 as id_person, 200 as summa from dual)
select pe.fio,d.name, pa.summa, avg(pa.summa) over(partition by d.id_depat) as avgarg
from person pe,depat d,payment pa
where pe.id_person=pa.id_person
and pe.id_depat=d.id_depat
31 авг 11, 15:38    [11206855]     Ответить | Цитировать Сообщить модератору
Все форумы / Вопрос-Ответ Ответить