Cześć, walczę z takim zadaniem:
Utwórz zespół NADMIAROWI. Czy można za pomocą jednego polecenia przenieść tam
pracowników z pozostałych zespołów w taki sposób, aby po wykonaniu polecenia w pozostałych
zespołach było nie więcej niż 2 osoby? Jeżeli tak, to czy da się ustalić w poleceniu lub poleceniach
jakiekolwiek kryterium, które to będą osoby?
Nie mam kompletnie pojęcia, jak mógłbym ograniczyć maksymalna ilość osób w zespołach (po za zespołem NADMIAROWI). Szperałem trochę w necie, ale nic nie znalazłem.
Napisałem coś takiego:
--utworzenie zespolu NADMIAROWI
INSERT INTO zespoly(id_zesp, nazwa)
VALUES (
(SELECT MAX(id_zesp)+1 FROM zespoly),
'NADMIAROWI'
);
UPDATE pracownicy
SET
id_zesp = (
SELECT id_zesp FROM zespoly WHERE nazwa = 'NADMIAROWI')
WHERE id_zesp in
(
SELECT * FROM
(
SELECT id_zesp
FROM pracownicy
GROUP BY id_zesp
HAVING COUNT(*) >2
)
);
UPDATE oczywiście przerzuca mi wszystkie osoby z zespołów, gdzie jest więcej niż 2 pracowników.
TABELA pracownicy:

TABELA zespoly:

Skrypt tworzący cała bazę:
http://wazniak.mimuw.edu.pl/images/4/48/Pracownicy.sql
Z góry dzięki za wszelkie sugestie :)
pzdr