PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum duvida a definir query #31345

10/06/2009

0

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,
preco      DECIMAL(5,2) NOT NULL,
multa_diaria  DECIMAL(5,2) NOT NULL,

CHECK (preco >=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, 
preco   DECIMAL(5,2) NOT NULL,

CHECK (formato= ´VHS´ AND formato=´DVD´),
CHECK (preco>=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,
preco             DECIMAL(5,2) NOT NULL,
multa                 DECIMAL (5,2),

CHECK (multa >=0 OR NULL),
CHECK (preco >=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


Mimp

Mimp

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar