Rozdział 11. ♦ Więcej o SQL 335
INSERT INTO tablica (kolumny)
SELECT kolumny_podzapytania FROM tablice_podzapytania WHERE warunkijodzapytania
W naszym konkretnym przypadku wykorzystamy zatem instrukcję:
INSERT INTO Zam Tymczasdmie. Nazwisko. Wartość)
(
SELECT Imię. Nazwisko, Wartość
FROM Klienci. Zamówienia
WHERE Klienci.Id = Zamówieni a.KlientId
):
Po jej wykonaniu w tablicy Zam_Tymczas znajdą się następujące dane:
| Imię |
| Nazwisko |
1 |
Wartość |
| Jan |
| Kowalski |
12.44 | |
j Jan |
| Kowalski |
10.22 | |
| Jan |
j Kowalski |
15.88 | |
| Andrzej |
j Nowak |
22.35 | |
j Andrzej |
j Nowak |
22.35 | |
j Andrzej |
j Nowak |
2.28 | |
j Janusz |
j Malinowski |
18.48 | |
| Janusz |
| Malinowski |
12.44 | |
| Adam |
| Kowalski |
15.26 | |
j Krzysztof |
j Nowicki |
6.11 |
Oczywiście nic nie stoi na przeszkodzie, aby w podzapytaniu użyć grupowania i funkcji agregujących i w tablicy Zaiti_Tymczas umieścić imiona i nazwiska klientów wraz z sumaryczną wartością złożonych przez nich zamówień. Wystarczy jeśli wykonamy instrukcję:
INSERT INTO ZAM TYMCZASdmie. Nazwisko. Wartość)
(
SELECT Imię. Nazwisko. Sum(Wartosc) AS Wartość FROM Klienci. Zamówienia WHERE Klienci.Id = Zamówienia.KIientld GROUP BY KIientld
Tym razem dane w tabeli będą miały postać:
| Imię | Nazwisko | Wartość |
| Jan |
| Kowalski | |
38.54 | |
j Andrzej |
j Nowak |
46.98 | |
j Janusz |
| Malinowski j |
30.92 | |
j Adam |
| Kowalski j |
15.26 | |
j Krzysztof |
| Nowicki | |
6.11 | |