Temat: Różnica 2 tabel
Mam 2 tabele wynikowe utworzone przez widok, następnie wykorzystuję tabelę przestawną do zobrazowania tych danych.
Potrzebuję teraz zrobić różnicę tych tabel. Obie mają taką samą strukturę czyli:
id_gatunek
suma
id_punkt
Pierwsza pokazuje założenia, druga realizację tych założeń chociaż nie do końca bowiem może i występuje id_punkt nie ujęty w tabeli pierwszej - założeniu.
Podaję wartości na chwilę obecną wraz ze strukturą:
tabela założeniowa - wynik_zzr
DROP TABLE IF EXISTS wynik_zzr;
CREATE TABLE wynik_zzr (
id_gatunek integer NOT NULL,
suma integer NOT NULL,
id_punkt integer NOT NULL
);
insert into wynik_zzr values (1, 118.48, 8);
insert into wynik_zzr values (1, 196.53, 255);
insert into wynik_zzr values (1, 86.8, 292);
insert into wynik_zzr values (1, 215.91, 471);
insert into wynik_zzr values (1, 210.11, 474);
insert into wynik_zzr values (1, 108.22, 565);
insert into wynik_zzr values (1, 38.78, 633);
insert into wynik_zzr values (1, 31.56, 636);
insert into wynik_zzr values (2, 40.21, 439);
insert into wynik_zzr values (3, 27.57, 8);
insert into wynik_zzr values (3, 9.95, 19);
insert into wynik_zzr values (3, 20.12, 117);
insert into wynik_zzr values (3, 38.2, 213);
insert into wynik_zzr values (3, 1.93, 636);
insert into wynik_zzr values (3, 10.08, 668);
insert into wynik_zzr values (3, 5.03, 672);
insert into wynik_zzr values (3, 70.01, 795);
insert into wynik_zzr values (3, 5.06, 797);
insert into wynik_zzr values (3, 5.01, 803);
insert into wynik_zzr values (4, 49.89, 249);
insert into wynik_zzr values (4, 49.78, 254);
insert into wynik_zzr values (4, 61.22, 259);
insert into wynik_zzr values (4, 88.9, 260);
insert into wynik_zzr values (4, 69.48, 301);
insert into wynik_zzr values (4, 72.58, 315);
insert into wynik_zzr values (4, 90.7, 324);
insert into wynik_zzr values (4, 37.74, 610);
insert into wynik_zzr values (4, 86.35, 637);
insert into wynik_zzr values (4, 35.43, 719);
insert into wynik_zzr values (8, 18.51, 8);
insert into wynik_zzr values (8, 120.49, 73);
insert into wynik_zzr values (8, 79.56, 78);
insert into wynik_zzr values (8, 99.89, 96);
insert into wynik_zzr values (8, 120.48, 98);
insert into wynik_zzr values (8, 119.17, 119);
insert into wynik_zzr values (8, 150.79, 131);
insert into wynik_zzr values (8, 120.14, 159);
insert into wynik_zzr values (8, 171.27, 186);
insert into wynik_zzr values (8, 49.58, 207);
insert into wynik_zzr values (8, 40.52, 208);
insert into wynik_zzr values (8, 34.97, 211);
insert into wynik_zzr values (8, 438.52, 249);
insert into wynik_zzr values (8, 50.05, 254);
insert into wynik_zzr values (8, 42.14, 259);
insert into wynik_zzr values (8, 40.23, 272);
insert into wynik_zzr values (8, 159.82, 317);
insert into wynik_zzr values (8, 35.61, 318);
insert into wynik_zzr values (8, 134.69, 334);
insert into wynik_zzr values (8, 161.12, 343);
insert into wynik_zzr values (8, 87.28, 344);
insert into wynik_zzr values (8, 185.4, 365);
insert into wynik_zzr values (8, 10.02, 372);
insert into wynik_zzr values (8, 41.26, 399);
insert into wynik_zzr values (8, 40.01, 402);
insert into wynik_zzr values (8, 51.1, 474);
insert into wynik_zzr values (8, 170.35, 497);
insert into wynik_zzr values (8, 103.56, 637);
insert into wynik_zzr values (8, 20.73, 668);
insert into wynik_zzr values (8, 4.95, 676);
insert into wynik_zzr values (8, 53.14, 719);
insert into wynik_zzr values (8, 191.98, 756);
insert into wynik_zzr values (8, 411.59, 768);
insert into wynik_zzr values (8, 9.08, 784);
insert into wynik_zzr values (8, 15.29, 797);
insert into wynik_zzr values (9, 19.09, 207);
insert into wynik_zzr values (9, 24.54, 292);
insert into wynik_zzr values (9, 3.44, 650);
insert into wynik_zzr values (9, 10.43, 797);
insert into wynik_zzr values (12, 5.12, 211);
insert into wynik_zzr values (12, 32.36, 474);
insert into wynik_zzr values (12, 16.94, 637);
insert into wynik_zzr values (12, 6.68, 650);
insert into wynik_zzr values (12, 7.6, 668);
insert into wynik_zzr values (12, 5.08, 676);
insert into wynik_zzr values (12, 10.07, 797);
insert into wynik_zzr values (13, 16.07, 8);
insert into wynik_zzr values (13, 30.12, 159);
insert into wynik_zzr values (13, 30.02, 186);
insert into wynik_zzr values (13, 14.3, 207);
insert into wynik_zzr values (13, 1.53, 255);
insert into wynik_zzr values (13, 11.38, 474);
insert into wynik_zzr values (13, 34.36, 650);
insert into wynik_zzr values (14, 9.02, 636);
insert into wynik_zzr values (14, 14.51, 650);
insert into wynik_zzr values (15, 4.99, 650);
tabela realizacji - wynik_zzw
DROP TABLE IF EXISTS wynik_zzw;
CREATE TABLE wynik_zzw (
id_gatunek integer NOT NULL,
suma integer NOT NULL,
id_punkt integer NOT NULL
);
insert into wynik_zzw values (1, 30.54, 8);
insert into wynik_zzw values (1, 56.85, 255);
insert into wynik_zzw values (1, 89.22, 292);
insert into wynik_zzw values (1, 232.1, 474);
insert into wynik_zzw values (1, 24.48, 608);
insert into wynik_zzw values (1, 13.32, 645);
insert into wynik_zzw values (2, 4.08, 8);
insert into wynik_zzw values (2, 18.42, 439);
insert into wynik_zzw values (2, 0.24, 636);
insert into wynik_zzw values (3, 23.37, 8);
insert into wynik_zzw values (3, 2.68, 19);
insert into wynik_zzw values (3, 34.55, 213);
insert into wynik_zzw values (3, 0.71, 636);
insert into wynik_zzw values (3, 67.41, 795);
insert into wynik_zzw values (5, 8.32, 645);
insert into wynik_zzw values (8, 154, 73);
insert into wynik_zzw values (8, 94.16, 78);
insert into wynik_zzw values (8, 123.9, 159);
insert into wynik_zzw values (8, 172.2, 186);
insert into wynik_zzw values (8, 66.35, 207);
insert into wynik_zzw values (8, 41.3, 208);
insert into wynik_zzw values (8, 14, 211);
insert into wynik_zzw values (8, 303.1, 249);
insert into wynik_zzw values (8, 16.8, 317);
insert into wynik_zzw values (8, 105.7, 365);
insert into wynik_zzw values (8, 10.5, 372);
insert into wynik_zzw values (8, 1.4, 375);
insert into wynik_zzw values (8, 147.7, 497);
insert into wynik_zzw values (8, 117.6, 637);
insert into wynik_zzw values (8, 5.6, 650);
insert into wynik_zzw values (8, 187.6, 756);
insert into wynik_zzw values (8, 130.1, 768);
insert into wynik_zzw values (9, 18.9, 207);
insert into wynik_zzw values (9, 26.45, 292);
insert into wynik_zzw values (12, 7.8, 637);
insert into wynik_zzw values (12, 5.2, 650);
insert into wynik_zzw values (13, 13.65, 117);
insert into wynik_zzw values (13, 32.5, 159);
insert into wynik_zzw values (13, 9.1, 186);
insert into wynik_zzw values (13, 26, 650);
insert into wynik_zzw values (13, 4.55, 756);
insert into wynik_zzw values (14, 11.7, 650);
insert into wynik_zzw values (15, 1.49, 474);
insert into wynik_zzw values (15, 9.1, 650);
insert into wynik_zzw values (19, 0.75, 637);
insert into wynik_zzw values (19, 0.76, 676);
insert into wynik_zzw values (21, 0.75, 375);
insert into wynik_zzw values (21, 1, 637);
potrzebuję stworzyć tabelę o takiej samej strukturze z dodatkowym polem o wartościach 1,2,3 dla założenia:
od sumy z tabeli wynik_zzw odejmujemy sumę z tabeli wynik_zzr
w zależności od wyniku
wartość dodatnia - dodatkowe pole przyjmie wartość 1
wartość ujemna - dodatkowe pole przyjmie wartość 2
wartość występuje w wynik_zzw natomiast nie występuje w wynik_zzr - dodatkowe pole przyjmie wartość 3
to dodatkowe pole potrzebuję ponieważ muszę znaleźć te id_punkt, które były w realizacji - wynik_zzw a nie były w założeniu - wynik_zzr