SQL код в ACESS выдает ошибку "Данный подчиненный запрос должен выдавать не более одной записи" 
Вот код: 
SELECT Работник.[Табельный номер], Работник.ФИО, Профессия.[Наименование професии], Профессия.Оклад, Работник.[Признак увольнения], 
( 
Профессия.Оклад * 
( 
( SELECT ROUND((SELECT SUM(Оклад) FROM Профессия INNER JOIN Работник ON Профессия.[Код профессии] = Работник.[Код профессии] 
WHERE [Признак увольнения]=True) * 100.0 ) 
/ 
(SELECT SUM(Оклад) FROM Профессия INNER JOIN Работник ON Профессия.[Код профессии] = Работник.[Код профессии] ), 1 ) 
FROM Профессия INNER JOIN Работник ON Профессия.[Код профессии] = Работник.[Код профессии] 
GROUP BY [Признак увольнения] 
 
) 
) 
AS [Увеличенный оклад] 
 
FROM Профессия INNER JOIN Работник ON Профессия.[Код профессии] = Работник.[Код профессии]; 
 
Задание: Вычислить процентное содержание общей суммы зарплаты уволенных работников и увеличить на это количество % оклад работающим работникам. 
Помогите, пожалуйста!
	
	
	SQL
	
		
		
								
				
								
				
			
	
		
			Помогитес sql кодом, пожалуйста!
Груп бай ставь по селекту
				
							Предположим, уволено 50% фонда заработной платы. Осталось 50%.
Если 50% увеличить на 50%, будет не 100%, а 75% от фонда заработной платы до увольнения. Ты уверен, что хотел получить именно такой результат?
				
							Если 50% увеличить на 50%, будет не 100%, а 75% от фонда заработной платы до увольнения. Ты уверен, что хотел получить именно такой результат?
 SELECT
  r.[Табельный номер],
  r.ФИО,
  p.[Наименование професии],
  p.Оклад,
  ROUND(p.Оклад * (1.0 + (
    SELECT SUM(p1.Оклад) * 1.0 FROM Профессия AS p1
    INNER JOIN Работник AS r1 ON p1.[Код профессии] = r1.[Код профессии]
    WHERE r1.[Признак увольнения]
    ) / (
    SELECT SUM(p1.Оклад) * 1.0 FROM Профессия AS p1
    INNER JOIN Работник AS r1 ON p1.[Код профессии] = r1.[Код профессии]
    ))) AS [Увеличенный оклад]
FROM Профессия AS p
INNER JOIN Работник AS r ON p.[Код профессии] = r.[Код профессии]
WHERE NOT r.[Признак увольнения] А вот так будет выглядеть код, распределяющий весь фонд заработной платы на всех оставшихся сотрудников: SELECT
  r.[Табельный номер],
  r.ФИО,
  p.[Наименование професии],
  p.Оклад,
  ROUND(p.Оклад * (
    SELECT SUM(p1.Оклад) * 1.0 FROM Профессия AS p1
    INNER JOIN Работник AS r1 ON p1.[Код профессии] = r1.[Код профессии]
    ) / (
    SELECT SUM(p1.Оклад) * 1.0 FROM Профессия AS p1
    INNER JOIN Работник AS r1 ON p1.[Код профессии] = r1.[Код профессии]
    WHERE NOT r1.[Признак увольнения]
    )) AS [Увеличенный оклад]
FROM Профессия AS p
INNER JOIN Работник AS r ON p.[Код профессии] = r.[Код профессии]
WHERE NOT r.[Признак увольнения] Похожие вопросы
- PL SQL Помогите пожалуйста как из этого запроса сделать функцию
- Что делает кусок коды, выделенный синим? SQL
- Просьба объяснить код на SQL - что означают команды и почему не запускается.
- SQL. Выводятся не все данные. 4 задача.
- Чем отличаются разные SQL?
- Не очень понятен синтаксис запросов SQL
- Помогите написать sql запросы
- Должен ли программист/аналитик писать код с той же скоростью, с которой обычные люди пишут обычный текст? Java, SQL
- Вопрос по SQL + Python
- Подскажите, есть ли такое понятие чистый SQL???
 
			