Ir para conteúdo
Fórum Script Brasil

MIMP

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Sobre MIMP

MIMP's Achievements

0

Reputação

  1. MIMP

    duvida em query

    será k me podiam explicar a seguinte função..... drop function if exists multa_a_pagar; delimiter @ CREATE function multa_a_pagar (aluguer int) returns decimal(4,2) begin declare modal char(1); declare hoje date; declare m_d decimal(4,2); declare d_a date; declare dias_multa int; select modalid,data_aluguer into modal,d_a from alugueres where num_aluguer=aluguer; select multa_diaria into m_d from modalidades where modalid=modal; set hoje = now(); set dias_multa = hoje - d_a -1; return (dias_multa * m_d); end; sei k esta funçao está relacionada com o armazenamento de codigo na base de dados. Tambem me podiam explicar sff como isso funciona... Obrigado
  2. MIMP

    duvida em query

    vou aproveitar este tópico para tirar todas as minhas ..... base de dados: DROP DATABASE IF EXISTS agencia_bancaria; CREATE DATABASE agencia_bancaria; USE agencia_bancaria; CREATE TABLE tipos_cartao ( tipo CHAR(10) NOT NULL, condicoes_pagamento CHAR(30), limite_credito DECIMAL(7,2), CHECK(limite_credito>0), CONSTRAINT ch_prim_tipo PRIMARY KEY (tipo) ); CREATE TABLE clientes ( n_cliente INTEGER(5) NOT NULL, nome CHAR(30) NOT NULL, morada VARCHAR(30), telefone INTEGER (9), bi INTEGER (9), nif INTEGER(9), CONSTRAINT ch_candidata_clientes UNIQUE (nome,bi,nif), CONSTRAINT ch_prim_n_cliente PRIMARY KEY (n_cliente) ); CREATE TABLE contas_bancarias ( n_conta INTEGER(5) NOT NULL, n_cliente INTEGER(5) NOT NULL, saldo_contab DECIMAL(7,2), saldo_dispon DECIMAL(7,2), CHECK (saldo_contab >= 0), CONSTRAINT ch_prim_n_conta PRIMARY KEY (n_conta), CONSTRAINT ch_estr_n_cliente FOREIGN KEY (n_cliente) REFERENCES clientes (n_cliente) ON UPDATE CASCADE ON DELETE CASCADE ); CREATE TABLE cartoes_credito ( n_cartao INTEGER(5) NOT NULL, tipo CHAR(10) NOT NULL, n_cliente INTEGER(5) NOT NULL, n_conta INTEGER(5) NOT NULL, data_emissao DATE, prazo_validade DATE, valor_em_credito DECIMAL(7,2), CONSTRAINT ch_prim_n_cartao PRIMARY KEY (n_cartao), CONSTRAINT ch_estr_tipo FOREIGN KEY (tipo) REFERENCES tipos_cartao (tipo) ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT ch_estr_n_cliente1 FOREIGN KEY (n_cliente) REFERENCES clientes (n_cliente) ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT ch_estr_n_conta FOREIGN KEY (n_conta) REFERENCES contas_bancarias (n_conta) ON UPDATE CASCADE ON DELETE CASCADE ); estou a tentar criar uma query que me dê as contas bancarias cujo saldo disponivel seja inferior ao total do valor em credito de todos os cartoes emitidos sobre cada uma dessas contas select * from contas_bancarias where n_conta in (select cc.n_conta,sum(valor_em_credito) from cartoes_credito cc, contas_bancarias cb where cc.n_conta=cb.n_conta group by n_conta having saldo_dispon<sum(valor_em_credito)); esta query dá-me erro pk não posso ir buscar sozinho o n_conta á sub_query. será k me podiam ajudar sff Obrigado
  3. MIMP

    duvida em query

    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
×
×
  • Criar Novo...