MySQL - 3 puntos de consultas, agrupaciones,algebra relacional.

   
Vista:

3 puntos de consultas, agrupaciones,algebra relacional.

Publicado por brandon (1 intervención) el 15/11/2013 06:49:53
Hola estoy en face de aprendizaje y pues quien pueda ayudarme con estos puntos entenderlos e interpretarlos .
gracias

Como hago estos tres puntos con algebra relacional,having,agrupaciones,consultas?

1. Mostrar los datos de los autos con más de 2 accidentes.

2. Mostrar los datos de personas con más de 2 accidentes entre las fechas 01/01/2000.

3. Mostrar los datos de los vehículos con un promedio de multas mayor que 200000.

Esta es la base de datos

Create database DB_multas
use DB_multas
/******/

Create table persona(
dni int,
Nombre varchar(50),
apellidos varchar(50),
direccion varchar(50),
tfno int,
poblacion varchar(50),
cantidad_multas int,
check(cantidad_multas>=0),
Primary key(dni))
/*****/

create table Vehiculo(
matricula varchar (50),
Marca varchar (50) not null,
modelo int not null,
Valor bigint,
check (Valor between 7000000 and 200000000),
acumulado float not null,
check (acumulado>=0),
primary key (matricula))

/******/
create table accidente(
codigo int,
hora float,
fecha datetime,
lugar varchar(50),
primary key (codigo))
/*******/
create table multa(
codigo_m int,
hora float,
fecha datetime,
lugar varchar(50),
importe float,
matricula varchar (50),
dni int,
primary key (codigo_m),
foreign key (dni) references persona (dni)
on delete cascade on update cascade,
foreign key (matricula) references vehiculo (matricula)
on delete cascade on update cascade)
/*******/
create table personas_vehiculos(
matricula varchar (50),
dni int,
primary key (matricula,dni),
foreign key (dni) references persona (dni)
on delete cascade on update cascade,
foreign key (matricula) references vehiculo (matricula)
on delete cascade on update cascade)
/******/
create table accidentes_persona(
codigo int,
dni int,
primary key (codigo,dni),
foreign key (dni) references persona (dni)
on delete cascade on update cascade,
foreign key (codigo) references accidente (codigo)
on delete cascade on update cascade)
/******/

create table accidentes_vehiculos(
codigo int,
matricula varchar(50),
primary key (codigo, matricula),
foreign key (matricula) references vehiculo (matricula)
on delete cascade on update cascade,
foreign key (codigo) references accidente (codigo)
on delete cascade on update cascade)



Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

3 puntos de consultas, agrupaciones,algebra relacional.

Publicado por Juan Manuel Castañeda (59 intervenciones) el 18/11/2013 01:29:00
1)SELECT v.* FROM vehiculos v WHERE (SELECT COUNT(av.codigo) FROM accidentes_vehiculos av GROUP BY av.matricula HAVING av.matricula=v.matricula)>2
2)No se puede hacer porque fallta:
_la fecha en la tabla accidentes_vehiculos
_una de las fechas entre las las que filtrar los datos.
3(No se puede hacer porque falta la tabla de multas de cada vehículo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar