Форум программистов, компьютерный форум CyberForum.ru

Представление для отображения информации о владельцах яхт ФИО, количество яхт, суммарные затраты на содержание - PostgreSQL

Восстановить пароль Регистрация
 
Trigger_name
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 22
21.11.2016, 21:16     Представление для отображения информации о владельцах яхт ФИО, количество яхт, суммарные затраты на содержание #1
вот как делаю Я, но оно чет мне не правильно считает зарплату экипажа

SQL
1
2
3
4
5
6
7
8
9
10
11
12
CREATE VIEW "OwnerView" AS 
SELECT o."FullName", COUNT (y."YachtId"), 
 
(SELECT SUM (p."Salary") AS sal
 FROM "Yacht" AS y , "Crew" AS c, "Positions" AS  p
 WHERE y."YachtId" = c."YachtId" AND c."PositionId" = p."PositionId"
 
) 
FROM "Owner" AS o, "Yacht" AS y
 
WHERE o."OwnerId" = y."OwnerId" 
GROUP BY o."FullName"
В чем ошибка? подскажите пожалуйста!)
Миниатюры
Представление для отображения информации о владельцах яхт ФИО, количество яхт, суммарные затраты на содержание  
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grgdvo
499 / 440 / 118
Регистрация: 02.09.2012
Сообщений: 1,283
22.11.2016, 02:04     Представление для отображения информации о владельцах яхт ФИО, количество яхт, суммарные затраты на содержание #2
Вы не связали внешний запрос с внутренним запросом. Зачем два раза "Yacht" ??

SQL
1
2
3
4
5
6
7
8
9
10
11
12
CREATE VIEW "OwnerView" AS 
SELECT
  o."FullName", 
  COUNT (y."YachtId"), 
  (SELECT SUM (p."Salary") AS sal
     FROM "Crew" AS c, "Positions" AS  p
     WHERE c."PositionId" = p."PositionId" AND c."YachtId" = y."YachtId") 
FROM
  "Owner" AS o, "Yacht" AS y
WHERE
  o."OwnerId" = y."OwnerId" 
GROUP BY o."FullName"
Trigger_name
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 22
22.11.2016, 08:39  [ТС]     Представление для отображения информации о владельцах яхт ФИО, количество яхт, суммарные затраты на содержание #3
grgdvo, не работает оно жалуется на y."YachtId" в под запросе(
Миниатюры
Представление для отображения информации о владельцах яхт ФИО, количество яхт, суммарные затраты на содержание  
grgdvo
499 / 440 / 118
Регистрация: 02.09.2012
Сообщений: 1,283
22.11.2016, 09:11     Представление для отображения информации о владельцах яхт ФИО, количество яхт, суммарные затраты на содержание #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Что-то я конкретно накосячил в торопях.
Вот так должно быть правильно.

SQL
1
2
3
4
5
6
7
8
CREATE VIEW "OwnerView" AS 
SELECT
  o."FullName", 
  COUNT (DISTINCT y."YachtId"), 
  SUM (p."Salary") "SumSalary"
FROM "Positions" AS  p, "Crew" AS c, "Yacht" AS y, "Owner" AS o
     WHERE p."PositionId" = c."PositionId" AND c."YachtId" = y."YachtId" AND y."OwnerId" = o."OwnerId"
GROUP BY o."FullName"
Trigger_name
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 22
22.11.2016, 21:13  [ТС]     Представление для отображения информации о владельцах яхт ФИО, количество яхт, суммарные затраты на содержание #5
grgdvo, спасибо, действительно сработало)
Yandex
Объявления
22.11.2016, 21:13     Представление для отображения информации о владельцах яхт ФИО, количество яхт, суммарные затраты на содержание
Ответ Создать тему
Опции темы

Текущее время: 15:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru