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

PostgreSQL

Войти
Регистрация
Восстановить пароль
 
misesin
1 / 1 / 0
Регистрация: 13.11.2014
Сообщений: 40
#1

Определить, у кого из брокеров есть вложения в объекты абсолютно всех стран - PostgreSQL

16.11.2016, 11:02. Просмотров 236. Ответов 1
Метки нет (Все метки)

Имеется связь N:N между таблицами Broker и Issuer. Необходимо определить, какой из сущностей Broker имеет связь с Issuer-ами со всеми возможными country.
Вот что имеется на данный момент, удалось только вывести таблицу с именами Broker с количеством различных стран. По сути осталось сравнить значение количества стран в новой таблице с количеством всех стран таблицы Issuer.
Во вложениях Концептуальная схема и новая таблица
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
CREATE TABLE Broker (
  brokerID        PASSPORT    NOT NULL    PRIMARY KEY,
  name            NAME        NOT NULL,
  phoneNumber     PhoneNumber     NOT NULL,
  investedMoney   FLOAT       NOT NULL,
  profit          FLOAT       NOT NULL,
  startDate       DATE        NOT NULL
);
 
CREATE TABLE Issuer (
  issuerID        SERIAL      NOT NULL    PRIMARY KEY,
  capitalization  FLOAT       NOT NULL    CHECK(capitalization > 0),
  price           FLOAT       NOT NULL    CHECK(price > 0),
  phoneNumber     PhoneNumber     NOT NULL,
  creationDate    DATE        NOT NULL,
  country         VARCHAR     NOT NULL
);
 
CREATE TABLE ContractBI (
    id      SERIAL      NOT NULL    PRIMARY KEY,
    ammount     INTEGER     NOT NULL    CHECK(ammount > 0),
    brokerID    PASSPORT    NOT NULL    REFERENCES Broker,
    issuerID    INTEGER     NOT NULL    REFERENCES Issuer,
    DATE    DATE        NOT NULL,
    UNIQUE (brokerID, issuerID)
    );
 
SELECT b.name, COUNT(DISTINCT i.country)
FROM Broker b
INNER JOIN ContractBI c1
ON b.brokerID = c1.brokerID
INNER JOIN Issuer i
ON c1.issuerID = i.issuerID
GROUP BY b.name
0
Миниатюры
Определить, у кого из брокеров есть вложения в объекты абсолютно всех стран   Определить, у кого из брокеров есть вложения в объекты абсолютно всех стран  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2016, 11:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить, у кого из брокеров есть вложения в объекты абсолютно всех стран (PostgreSQL):

Определить, есть ли среди стран те, которые находятся в Африке или в Азии - C#
Даны названия 20 стран и частей света, в которых они находятся. Определить, является ли среди них страны, находящиеся в Африке или в Азии....

Как вывести всех студентов у кого есть один родитель или опекун - 1С
ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СтудентыРодственники.ФИО) КАК Родитель, СтудентыРодственники.КонтактныйТелефон, ...

Даны названия 20 стран и частей света, где они находятся. Определить, есть ли среди них страны Азии и Африки - C++
Даны названия 20 стран и частей света, в которых они находятся. Определить, есть ли среди них страны, находящиеся в Африке или в Азии....

Даны название 20-ти стран и частей света,в которые они находятся.Определить, есть ли среди них страны,находящиеся в Африке или в Азии - Turbo Pascal
Помогите пожалуйста решение напишите сюда Даны название 20-ти стран и частей света,в которые они находятся.Определить,есть ли среди них...

Есть ли такие, у кого есть свои идеи, касающиеся защиты от вирусов? - Безопасность
Есть ли тут такие, у кого есть свои идеи, касающиеся защиты от вирусов?

Проверить, есть ли угроза королю и если есть, то от кого именно - Turbo Pascal
нуждаюсь в вашей помощи... На шахматной доске стоят черный король и белые ладья и слон (ладья бьет по горизонтали и вертикали, слон...

1
grgdvo
570 / 508 / 148
Регистрация: 02.09.2012
Сообщений: 1,495
16.11.2016, 17:09 #2
а так проверьте, писал с листа
SQL
1
2
3
4
5
6
7
8
9
10
SELECT
  b.brokerid,
  b.name
FROM
  broker b, contractbi bi, issuer i
WHERE
  b.brokerid=bi.brokerid AND bi.issuerid=i.issuerid
GROUP BY
  b.brokerid, b.name
HAVING COUNT(DISTINCT i.country) = (SELECT COUNT(DISTINCT ii.country) FROM issuer ii);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2016, 17:09
Привет! Вот еще темы с ответами:

Астрономы всех стран, объединяйтесь! - Астрономия
Соответствуют ли вопросы по астрономии данному разделу?

Регулярка для абсолютно всех ссылок - PHP
Существует переменная с сылками разного рода: $html = ' <link href="css/bootstrap.min.css" rel="stylesheet"> <link...

Протокол запуска абсолютно всех процессов - Windows 7
Приветствую. Поймал какое то вирье. Ни один сканер его выловить не может. В реестре тоже ничего путного не нахожу. Симптомы: если в...

Есть ли тут такие, у кого есть свои идеи ,касающиеся компьютерной безопасности,например, по защите от вирусов? - C++
Есть ли тут такие, у кого есть свои идеи ,касающиеся компьютерной безопасности,например, по защите от вирусов?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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