none
Suma de diferentes tablas RRS feed

  • Pregunta

  • Buenas a todos

    Me encuentro en proceso de aprendizaje de SQL, y he diseñado una BD para un holding de empresas, el problema es que debo realizar una consulta que dice así: 

    Realice consulta que muestre el IdEmpresa, Nombre y la sumatoria de las ventas minima de
    cada uno de sus empleados.

    Mi DB esta así:

    Tablas:

    create table Empresas (IDEmpresa varchar(4) primary key not null, Nombre varchar(15) not null, 
    FechaIngreso date not null, CantidadVendedores varchar(5)not null, TotalAnual money not null)
    
    create table VendedoresTabla (IDEmpresa varchar(4) foreign key references Empresas(IDEmpresa) 
    not null, IDVendedores varchar(3) primary key not null, FechaInicio date not null)
    
    create table Vendedores(IDVendedor varchar(3) primary key not null, 
    Nombre varchar(20) not null, Apellidos varchar(30) not null, dirección varchar(30) not null, IDEmpresa varchar(3) foreign key references
    VendedoresTabla(IDVendedores) not null, VentaMinima money not null, Activo char(2), FechaContrato
    date not null)
    
    create table VendedoresEmpleados(IDVendedorJefe varchar(3) foreign key references Vendedores(IDVendedor)
    not null, Nombre varchar(15) not null, Apellidos varchar(30) not null, FechaContrato date not null,
    VentaMinima money not null)

    Datos:

    Insert into VendedoresTabla(IDEmpresa,IDVendedores,FechaInicio)
    Values (0001,100,'2014-06-01'), (0002,200,'2013-05-02'), (0003,300,'2016-08-05'),
    	   (0004,400,'2017-02-27'), (0005,500,'2018-03-01')
    
    Insert into Vendedores(IDVendedor,Nombre,Apellidos,dirección,IDEmpresa, VentaMinima, Activo, FechaContrato)
    Values (001,'Juan','Diaz Caballo','Carrera 0',100,50,'Si','2015-05-08'), (002,'Sancho','Panza','Carrera 1',200,100,'Si','2017-05-18'),
    	   (003,'Elias','Martín','Carrera 2',100,150,'No','2017-08-09'), (004,'Jefferson','López','Carrera 3',100,200,'Si','2018-01-02'),
    	   (005,'Roberto','García','Carrera 4',200,250,'Si','2016-09-18'), (006,'Steve','Jobs','Carrera 5', 300,300,'Si','2015-12-01'),
    	   (007,'Carlos','Moreno','Carrera 6',300,350,'Si','2017-08-22'), (008,'Clara','Watson','Carrera 7',400,400,'No','2014-08-14'),
    	   (009,'Miguel','Ceballos','Carrera 8',500,450,'No','2015-08-09'), (010,'Sandra','Venedeti','Carrera 9',500,500,'No','2011-05-06')
    
    Insert into VendedoresEmpleados(IDVendedorJefe,Nombre,Apellidos,FechaContrato,VentaMinima)
    Values (001,'Goku','Son','2015-09-02',50), (001,'Gohan','Son','2016-08-09',100), (004,'Vegeta','Ikari',
           '2017-04-22',150), (005,'Sebastian','Naranjo','2016-12-14',200), (009,'Luis','Alfonso','2015-06-09',250), 
    	   (008,'Estefania','Yepes','2017-08-25',300), (006,'Alvaro','Muñoz','2018-01-17',350), 
    	   (008,'Walter','Barrera','2016-04-04',400), (008,'Natalia', 'Muñoz','2016-11-22',450)
    

    Con el relativo poco conocimiento que tengo sobre SQL creí que se podía realizar así:

    select sum(Vendedores.VentaMinima+VendedoresEmpleados.VentaMinima)[Total], Empresas.Nombre
    from Vendedores, VendedoresEmpleados, Empresas
    group by Empresas.Nombre
    order by Empresas.Nombre

    Pero de esta forma me muestra en el Total el mismo valor para todas las empresas.

    Agradecería muchísimo cualquier ayuda.

    domingo, 18 de marzo de 2018 20:53