zapytanie sql

0

Witam.
zaczynam swoja przygode z SQL i mam taki problem ze nie wiem jak ułożyc zapytanie które wyswietli mi srednią ocene wszystkich uczniów z danego przedmiotu. Moge liczyc na wasza pomoc?

tak wygląda mój CREATE.sql

create table przedmiot
(

nr				serial,
nazwa			varchar(32)	NOT NULL,
rodzaj			varchar(16)	NOT NULL,
nauczyciel_nr_leg		char(4)		NOT NULL,
CONSTRAINT			przedmiot_nr_pk PRIMARY KEY(nr),
CONSTRAINT			nauczyciel_nr_leg_fk 		
			FOREIGN KEY(nauczyciel_nr_leg)
			REFERENCES nauczyciel(nr_leg)
			

);

create table uczen
(
nr serial,
imie varchar(16) NOT NULL,
nazwisko varchar(32) NOT NULL,
grupa char(4) NOT NULL,
nr_index char(6) NOT NULL,
uwagi text ,

CONSTRAINT			uczen_nr_index_pk PRIMARY KEY(nr_index)

);

create table rodzaj_oceny
(
nr serial ,
nazwa varchar(20) NOT NULL,

CONSTRAINT rodzaj_oceny_nr_pk PRIMARY KEY(nr)
);

create table ocena
(
nr serial,
nazwa integer NOT NULL,
data_wystawienia date ,
uczen_nr_index char(6) NOT NULL,
rodzaj_oceny_nr integer NOT NULL,
przedmiot_nr integer NOT NULL,
CONSTRAINT ocena_nr_pk PRIMARY KEY(nr),
CONSTRAINT uczen_nr_index_fk
FOREIGN KEY(uczen_nr_index)
REFERENCES uczen(nr_index),
CONSTRAINT rodzaj_oceny_nr_fk
FOREIGN KEY(rodzaj_oceny_nr)
REFERENCES rodzaj_oceny(nr),
CONSTRAINT przedmiot_nr_fk
FOREIGN KEY(przedmiot_nr)
REFERENCES przedmiot(nr)

);

0

Słowa kluczowe:

Join
Avg
Group by

0

I jeszcze WHERE :)

0

Witam,
mozecie mi powiedziec co jest nie tak z takim zapytaniem ?

CREATE VIEW oceny_z_września AS(
SELECT imie, nazwisko, ocena.nazwa, przedmiot.nazwa
FROM uczen INNER JOIN ocena ON ocena.uczen_nr_index=uczen.nr_index
WHERE data_wystawienia= '01-09-2014' + INTERVAL 30 DAY;

0

Jeśli to postgreSQL, to:

  • niepotrzebny nawias po AS
  • brak tabeli przedmiot w zapytaniu
  • daty w postgreSQL pisze się zazwyczaj w formacie '2014-09-01', a aby mieć pewność, że są datą dodatkowo castuje na datę, czyli '2014-09-01'::DATE
    • INTERVAL '30 days'

1 użytkowników online, w tym zalogowanych: 0, gości: 1