Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 31.01.2013
Сообщений: 72
1

Выполнится ли запрос по задаче на SQL

26.07.2017, 03:58. Показов 611. Ответов 1

Author24 — интернет-сервис помощи студентам
Здравствуйте.

Есть три таблицы:

1. Система
ID_системы Имя_системы
1 Имя_1
2 Имя_2

2. Сообщения
ID_сообщения ID_системы Сообщение
2 1 Сообщение1фыва
4 1 Сообщение2фыва
6 2 Сообщение10фыва
8 3 Сообщение12фыва


3. Справочник
ID_справочника ID_системы Код_системы
2 1 Код_системы_1
3 2 Код_системы_2
4 3 Код_системы_3

Зная 2 кода систем - Код_системы_1 и Код_системы_2 – необходимо написать SQL запрос, который выведет имена указанных систем и количество сообщений, переданных каждой системой. Написать запросы на синтаксисе Transact-SQL, Oracle.

Я не очень владею SQL поэтому прошу вашей помощи по валидации следующего запроса:

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
SELECT 
    Имя_системы;
    Количество сообщений AS c1
FROM Система
 
WHERE c1 = 
    
                    (SELECT COUNT (ID_системы) FROM Система
                     GROUP BY ID_системы
                     HAVING COUNT (ID_системы= 1)
                        
                    AND
                    
                    SELECT *
                    FROM Система
                    INNER JOIN Сообщения
                        ON Система.ID_системы = Сообщения.ID_системы
                        
                    AND
                    
                    SELECT ID_системы
                    FROM Справочник
                    WHERE Code IN ('Код_системы_1','Код_системы_2')
                    
                    );
Не судите строго за такой нубский запрос, умом понимаю, что надо создавать временную таблицу, в неё записывать имя системы и рассчитанное количество сообщений для каждой из систем, но как это сделать правильно не знаю. Пока получилось то, что получилось выше, но врядли это валидный запрос (
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.07.2017, 03:58
Ответы с готовыми решениями:

Как приостановить функцию пока не выполнится ajax запрос?
function () { arr.forEach(function(item, i, arr) { $.ajax({...}) //...

Php+mysql что будет если запрос SELECT выполнится быстрее чем UPDATE (в разных потоках)
Ребята. Вот объясните мне пожалуйста. Может ли быть такое?: Предположим, что открылось 2...

Запрос к задаче
Привет ! Первая программа на Prolog 5.2. Есть запрос: "Кто взял заданную книгу"? Написал запрос, а...

Запрос Select T-sql - Вложенный запрос вернул больше одного значения
Нужно посчитать комиссию от сделки. DealShare(комиссия) - поле таблицы agents, supplies -...

1
3 / 3 / 2
Регистрация: 12.05.2014
Сообщений: 24
27.07.2017, 11:58 2
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
35
36
37
38
39
40
41
WITH systems(id, name) AS
(
  SELECT 1, 'Имя_1'
  FROM dual
  UNION ALL
  SELECT 2, 'Имя_2'
  FROM dual
),
messages (id, system_id, message_name) AS
(
  SELECT 2, 1, ' Сообщение1фыва'
  FROM dual
  UNION ALL
  SELECT 4, 1, ' Сообщение2фыва'
  FROM dual
  UNION ALL
  SELECT 6, 2, ' Сообщение10фыва'
  FROM dual
  UNION ALL
  SELECT 8, 3, ' Сообщение12фыва'
  FROM dual  
),
lookup (id, system_id, system_code) AS
(
  SELECT 2, 1, 'Код_системы_1'
  FROM dual
  UNION ALL
  SELECT 3, 2, 'Код_системы_2'
  FROM dual
  UNION ALL
  SELECT 4, 3, 'Код_системы_3'
  FROM dual
)
SELECT systems.name,
  (SELECT COUNT(*)
   FROM messages
   WHERE messages.system_id = systems.id) AS messages_qty
FROM lookup
JOIN systems
  ON systems.id = lookup.system_id
WHERE system_code IN ('Код_системы_1', 'Код_системы_2')
with это просто представление данных.
Не надо никаких временных таблиц для элементарного запроса.
0
27.07.2017, 11:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.07.2017, 11:58
Помогаю со студенческими работами здесь

Как посмотреть T-SQL запрос который генерирует Entity Framework запрос
как посмотреть T-SQL запрос который генерирует Entity Framework запрос в visual studio 2010, 2012

Как в sql запрос вставить еще один запрос правильно?
Есть длинный запрос, в котором можете даже не разбираться если не хотите, но выдает он следующее:...

Не работае запрос в SQL Navigator 6.0 хотя работает в 4 и SQL Plus
Добрый день. Такая вот непонятная проблемка нарисовалась на ровном месте. Установили SQL...

SQL запрос по фрагменту строки сохраненной в таблице SQL
Прошу помощи. Есть SQL таблица-1, в ней есть столбец по имени Model_Vagona с типом данных ntext...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru