bom dia! tenho a seguinte base de dados referente a uma locadora de video DROP DATABASE IF EXISTS fichaF;
CREATE DATABASE fichaF;
USE fichaF;
CREATE TABLE socios (
n_socio INTEGER(5) NOT NULL,
nome CHAR(30) NOT NULL,
morada VARCHAR(30),
telefone INTEGER (9),
bi INTEGER (9),
data_nasc DATE,
data_insc DATE NOT NULL,
CONSTRAINT ch_candidata_socios UNIQUE (nome,bi),
CONSTRAINT ch_prim_n_socio
PRIMARY KEY (n_socio)
);
CREATE TABLE filmes (
cod_filme INTEGER(5) NOT NULL,
titulo CHAR(30) NOT NULL,
duracao TIME,
CONSTRAINT ch_candidata_filmes UNIQUE (titulo),
CONSTRAINT ch_prim_cod_filme
PRIMARY KEY (cod_filme)
);
CREATE TABLE modalidades (
modalidade CHAR(10) NOT NULL,
preço DECIMAL(5,2) NOT NULL,
multa_diaria DECIMAL(5,2) NOT NULL,
CHECK (preço >=0),
CHECK (multa_diaria >=0),
CONSTRAINT ch_prim_modalidade
PRIMARY KEY (modalidade)
);
CREATE TABLE copias (
cod_filme INTEGER(5) NOT NULL,
n_copia INTEGER(5) NOT NULL,
formato CHAR(3)NOT NULL,
data_aquisicao DATE,
preço DECIMAL(5,2) NOT NULL,
CHECK (formato= 'VHS' AND formato='DVD'),
CHECK (preço>=0),
CONSTRAINT ch_prim_cod_filme_e_n_copia
PRIMARY KEY (cod_filme,n_copia)
);
CREATE TABLE alugueres (
n_aluguer INTEGER(5) NOT NULL,
n_socio INTEGER(5) NOT NULL,
cod_filme INTEGER(5) NOT NULL,
n_copia INTEGER(5) NOT NULL,
modalidade CHAR(10) NOT NULL,
data_aluguer DATE,
data_entrega DATE,
preço DECIMAL(5,2) NOT NULL,
multa DECIMAL (5,2),
CHECK (multa >=0 OR NULL),
CHECK (preço >=0),
CONSTRAINT ch_prim_n_aluguer
PRIMARY KEY (n_aluguer),
CONSTRAINT ch_estr_n_socio
FOREIGN KEY (n_socio)
REFERENCES socios (n_socio)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT ch_estr_cod_filme
FOREIGN KEY (cod_filme,n_copia)
REFERENCES copias (cod_filme,n_copia)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT ch_estr_modalidade
FOREIGN KEY (modalidade)
REFERENCES modalidades (modalidade)
ON UPDATE CASCADE
ON DELETE CASCADE
);
agora estou a tentar definir uma query que vai seleccionar a multa maxima e vai dar o respectivo cod_filme.
select multa,cod_filme
from alugueres
group by cod_filme
having max(multa); esta query n me dá o k quero. será me podem ajudar... obrigado