Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Por favor necesito ayuda

Estas en el tema de Por favor necesito ayuda en el foro de Mysql en Foros del Web. Hola soy nuevo en este y me gustaria saber si alguien me pudiese ayudar...tengo problemas con dos consultas les estaria mu agradecido. 1º Obtener los ...
  #1 (permalink)  
Antiguo 02/06/2009, 14:37
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 15 años, 5 meses
Puntos: 0
Por favor necesito ayuda

Hola soy nuevo en este y me gustaria saber si alguien me pudiese ayudar...tengo problemas con dos consultas les estaria mu agradecido.


1º Obtener los ingresos por ventas de una marca el 22 de agosto de 1995



2º Obtener el nombre y el nif de todos los estancos de madrid que no venden cigarrillos W pero si cigarrillos C.


Muchas gracias
  #2 (permalink)  
Antiguo 02/06/2009, 14:53
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Por favor necesito ayuda

No das mucha información asturballer

Describe tus tablas, los campos que utilizas y comenta un poco mas a fondo que deseas obtener.

Un saludo
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 02/06/2009, 15:00
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Por favor necesito ayuda

CREATE TABLE estancos(
nif integer not null,
nombre varchar(20),
n_exp integer not null,
localidad varchar(20),
provincia varchar(20),
PRIMARY KEY(nif)
);

CREATE TABLE fabricantes(
cod_fabricante integer,
nombre varchar(20),
sede varchar(20),
PRIMARY KEY(cod_fabricante)
);

CREATE TABLE cigarrillos(
cod_cigarrillo integer not null,
cod_fabricante integer not null,
marca varchar(20),
tipo varchar(20),
filtro varchar(3),
sabor varchar(2),
PRIMARY KEY(cod_cigarrillo),
FOREIGN KEY (cod_fabricante) REFERENCES fabricantes(cod_fabricante) ON DELETE CASCADE ON UPDATE CASCADE,
CHECK(UPPER(tipo)='NORMAL' OR UPPER(tipo)='LIGHT' OR UPPER(tipo)='ULTRALIGHT' OR UPPER(tipo)='SUPERLIGHT'),
CHECK((UPPER(filtro)='SIN' AND UPPER(tipo)='NORMAL') OR UPPER(filtro)='CON'),
CHECK((UPPER(sabor)='M' AND UPPER(tipo)='NORMAL') OR UPPER(sabor)='NM')
);

CREATE TABLE almacenes(
nif integer not null,
cod_cigarrillo integer,
stock integer,
PRIMARY KEY(nif, cod_cigarrillo),
FOREIGN KEY (nif) REFERENCES estancos(nif) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (cod_cigarrillo) REFERENCES cigarrillos(cod_cigarrillo) ON DELETE CASCADE ON UPDATE CASCADE,
CHECK (stock>=0)
);

CREATE TABLE ventas(
cod_venta integer,
nif integer not null,
cod_cigarrillo integer,
fecha date,
cantidad integer,
precio_venta integer,
PRIMARY KEY(cod_venta),
FOREIGN KEY (nif) REFERENCES estancos(nif) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (cod_cigarrillo) REFERENCES cigarrillos(cod_cigarrillo) ON DELETE CASCADE ON UPDATE CASCADE,
CHECK (cantidad>=0),
CHECK (precio_venta>=0)
);

CREATE TABLE compras(
cod_compra integer not null,
nif integer,
cod_fabricante integer,
cod_cigarrillo integer,
fecha date,
cantidad integer,
precio_compra integer,
PRIMARY KEY(cod_compra),
FOREIGN KEY (nif) REFERENCES estancos(nif) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (cod_fabricante) REFERENCES fabricantes(cod_fabricante) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (cod_cigarrillo) REFERENCES cigarrillos(cod_cigarrillo) ON DELETE CASCADE ON UPDATE CASCADE,
CHECK (cantidad>0),
CHECK (precio_compra>0)
);



INSERT INTO estancos(nif, nombre, n_exp, localidad, provincia)
VALUES (11111, 'Jose Luis Garcia', 345543, 'Gijon', 'Asturias');
INSERT INTO estancos(nif, nombre, n_exp, localidad, provincia)
VALUES (21457, 'Estanco cobera', 12548, 'Madrid', 'Madrid');
INSERT INTO estancos(nif, nombre, n_exp, localidad, provincia)
VALUES (32115, 'Estanco Moreno', 241786, 'Coslada', 'Madrid');
INSERT INTO estancos(nif, nombre, n_exp, localidad, provincia)
VALUES (23514, 'Maria Perez Pajin', 345543, 'Pinto', 'Madrid');
INSERT INTO estancos(nif, nombre, n_exp, localidad, provincia)
VALUES (57412, 'Estanco Garcia', 25479, 'Leon', 'Leon');
INSERT INTO estancos(nif, nombre, n_exp, localidad, provincia)
VALUES (96584, 'Estanco El fumador', 32547, 'Oviedo', 'Asturias');

INSERT INTO fabricantes(cod_fabricante, nombre, sede)
VALUES (1, 'Philip Morris', 'EEUU');
INSERT INTO fabricantes(cod_fabricante, nombre, sede)
VALUES (2, 'Reynolds', 'EEUU');
INSERT INTO fabricantes(cod_fabricante, nombre, sede)
VALUES (3, 'Altadis', 'Espana');
INSERT INTO fabricantes(cod_fabricante, nombre, sede)
VALUES (4, 'Japon Tobacco', 'Japon');

INSERT INTO cigarrillos(cod_cigarrillo, cod_fabricante, marca, tipo, filtro, sabor)
VALUES (1, 1, 'Marlboro', 'Normal', 'SIN', 'M');
INSERT INTO cigarrillos(cod_cigarrillo, cod_fabricante, marca, tipo, filtro, sabor)
VALUES (2, 1, 'Marlboro', 'Light', 'CON', 'NM');
INSERT INTO cigarrillos(cod_cigarrillo, cod_fabricante, marca, tipo, filtro, sabor)
VALUES (3, 1, 'Chesterfield', 'SuperLight', 'CON', 'NM');
INSERT INTO cigarrillos(cod_cigarrillo, cod_fabricante, marca, tipo, filtro, sabor)
VALUES (4, 2, 'Camel', 'Normal', 'SIN', 'NM');
INSERT INTO cigarrillos(cod_cigarrillo, cod_fabricante, marca, tipo, filtro, sabor)
VALUES (5, 2, 'Winston', 'Normal', 'CON', 'M');
INSERT INTO cigarrillos(cod_cigarrillo, cod_fabricante, marca, tipo, filtro, sabor)
VALUES (6, 3, 'Fortuna', 'Normal', 'SIN', 'NM');
INSERT INTO cigarrillos(cod_cigarrillo, cod_fabricante, marca, tipo, filtro, sabor)
VALUES (7, 4, 'Mild Seven', 'UltraLight', 'CON', 'NM');
INSERT INTO cigarrillos(cod_cigarrillo, cod_fabricante, marca, tipo, filtro, sabor)
VALUES (8, 3, 'Ducados', 'Light', 'CON', 'NM');
INSERT INTO cigarrillos(cod_cigarrillo, cod_fabricante, marca, tipo, filtro, sabor)
VALUES (9, 3, 'Celtas', 'Normal', 'SIN', 'NM');

INSERT INTO almacenes(nif, cod_cigarrillo, stock)
VALUES (11111, 1, 20);
INSERT INTO almacenes(nif, cod_cigarrillo, stock)
VALUES (11111, 2, 40);
INSERT INTO almacenes(nif, cod_cigarrillo, stock)
VALUES (11111, 5, 10);
INSERT INTO almacenes(nif, cod_cigarrillo, stock)
VALUES (11111, 7, 15);
INSERT INTO almacenes(nif, cod_cigarrillo, stock)
VALUES (21457, 1, 50);
INSERT INTO almacenes(nif, cod_cigarrillo, stock)
VALUES (21457, 3, 24);
INSERT INTO almacenes(nif, cod_cigarrillo, stock)
VALUES (21457, 4, 50);
INSERT INTO almacenes(nif, cod_cigarrillo, stock)
VALUES (21457, 6, 80);
INSERT INTO almacenes(nif, cod_cigarrillo, stock)
VALUES (21457, 9, 40);
INSERT INTO almacenes(nif, cod_cigarrillo, stock)
VALUES (32115, 1, 100);
INSERT INTO almacenes(nif, cod_cigarrillo, stock)
VALUES (32115, 4, 14);
INSERT INTO almacenes(nif, cod_cigarrillo, stock)
VALUES (32115, 9, 80);
INSERT INTO almacenes(nif, cod_cigarrillo, stock)
VALUES (23514, 1, 25);
INSERT INTO almacenes(nif, cod_cigarrillo, stock)
VALUES (57412, 6, 70);

INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (1, 11111, 1, '2004-02-21', 5, 3);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (2, 11111, 2, '2004-02-21', 10, 4);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (3, 11111, 1, '2004-03-14', 15, 3);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (4, 11111, 5, '2005-04-05', 20, 2);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (5, 11111, 2, '2007-04-05', 2, 3);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (6, 21457, 1, '2005-12-09', 20, 3);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (7, 21457, 4, '2007-10-01', 30, 2);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (8, 21457, 6, '2006-08-21', 18, 4);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (9, 32115, 4, '2006-08-21', 27, 2);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (10, 32115, 4, '2008-09-17', 7, 3);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (11, 23514, 1, '2008-09-17', 29, 3);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (12, 21457, 8, '2006-08-21', 37, 4);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (13, 32115, 8, '2007-10-07', 27, 3);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (14, 32115, 8, '2008-09-17', 23, 3);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (15, 57412, 6, '2008-03-25', 36, 4);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (16, 32115, 9, '2006-01-27', 31, 3);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (17, 21457, 9, '2008-07-17', 23, 3);
INSERT INTO ventas(cod_venta, nif, cod_cigarrillo, fecha, cantidad, precio_venta)
VALUES (18, 23514, 9, '2008-06-20', 36, 4);
  #4 (permalink)  
Antiguo 02/06/2009, 15:01
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Por favor necesito ayuda

INSERT INTO compras(cod_compra, nif, cod_fabricante, cod_cigarrillo, fecha, cantidad, precio_compra)
VALUES (1, 11111, 1, 1, '2002-09-17', 30, 2);
INSERT INTO compras(cod_compra, nif, cod_fabricante, cod_cigarrillo, fecha, cantidad, precio_compra)
VALUES (2, 11111, 1, 1, '2005-11-08', 100, 1);
INSERT INTO compras(cod_compra, nif, cod_fabricante, cod_cigarrillo, fecha, cantidad, precio_compra)
VALUES (3, 11111, 1, 2, '2002-09-17', 60, 2);
INSERT INTO compras(cod_compra, nif, cod_fabricante, cod_cigarrillo, fecha, cantidad, precio_compra)
VALUES (4, 11111, 1, 2, '2004-03-02', 20, 3);
INSERT INTO compras(cod_compra, nif, cod_fabricante, cod_cigarrillo, fecha, cantidad, precio_compra)
VALUES (5, 11111, 1, 2, '2006-12-21', 140, 3);
INSERT INTO compras(cod_compra, nif, cod_fabricante, cod_cigarrillo, fecha, cantidad, precio_compra)
VALUES (6, 21457, 1, 1, '2006-12-21', 100, 3);
INSERT INTO compras(cod_compra, nif, cod_fabricante, cod_cigarrillo, fecha, cantidad, precio_compra)
VALUES (7, 21457, 1, 3, '2006-12-21', 80, 2);
INSERT INTO compras(cod_compra, nif, cod_fabricante, cod_cigarrillo, fecha, cantidad, precio_compra)
VALUES (8, 21457, 2, 4, '2006-12-21', 50, 1);
INSERT INTO compras(cod_compra, nif, cod_fabricante, cod_cigarrillo, fecha, cantidad, precio_compra)
VALUES (9, 32115, 2, 4, '2007-02-02', 150, 1);
INSERT INTO compras(cod_compra, nif, cod_fabricante, cod_cigarrillo, fecha, cantidad, precio_compra)
VALUES (10, 32115, 2, 4, '2006-12-21', 80, 2);
INSERT INTO compras(cod_compra, nif, cod_fabricante, cod_cigarrillo, fecha, cantidad, precio_compra)
VALUES (11, 23514, 1, 1, '2006-12-21', 50, 1);
INSERT INTO compras(cod_compra, nif, cod_fabricante, cod_cigarrillo, fecha, cantidad, precio_compra)


y necesito

obtener el nombre y el nif de todos los estancos de madrid que no venden cigarrillos winston con mentol pero si celtas sin filtro
  #5 (permalink)  
Antiguo 02/06/2009, 15:56
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Por favor necesito ayuda

Primera consulta:

Código mysql:
Ver original
  1. select c.marca,sum(cantidad*precio_venta) from ventas v inner join cigarrillos c
  2. on v.cod_cigarrillo=c.cod_cigarrillo where v.fecha = '1995-08-22' group by c.marca;
Segunda consulta:

Código mysql:
Ver original
  1. select e.nif,e.nombre from estancos e inner join almacenes a
  2. on e.nif = a.nif
  3. inner join cigarrillos c on c.cod_cigarrillo = a.cod_cigarrillo
  4. where c.marca = 'Winston' and c.marca <> 'celtas';

Pruebalas y nos cuentas.

un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #6 (permalink)  
Antiguo 02/06/2009, 16:13
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Por favor necesito ayuda

Hola muchas gracias jejej la primera esta bien pero la segunda no m muestra lo que te pido....

creo que habria que hacerla con una divisio....
  #7 (permalink)  
Antiguo 02/06/2009, 16:18
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Por favor necesito ayuda

Cita:
Obtener el nombre y el nif de todos los estancos de madrid que no venden cigarrillos W pero si cigarrillos C.
La consulta muestra el nombre y el nif del estanco que vende cigarrillos Winston pero no vende celtas.

Según los registros que pasaste, sería 1111 | Jose luis garcia.

Revisando los insert, veo que la consulta está bien.

Falta algún parámetro en tu consulta?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #8 (permalink)  
Antiguo 02/06/2009, 16:29
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 15 años, 5 meses
Puntos: 0
de madrid jejee

que sera poner e.localidad='Madrid'


no??

Cita:
Iniciado por asturballer Ver Mensaje


y necesito

obtener el nombre y el nif de todos los estancos de madrid que no venden cigarrillos winston con mentol pero si celtas sin filtro

Última edición por GatorV; 02/06/2009 a las 18:06
  #9 (permalink)  
Antiguo 02/06/2009, 21:09
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Por favor necesito ayuda

:P

Tienes razón....

Cambialo por esto:

Código mysql:
Ver original
  1. SELECT e.nif,e.nombre FROM estancos e INNER JOIN almacenes a
  2. on e.nif = a.nif
  3. INNER JOIN cigarrillos c on c.cod_cigarrillo = a.cod_cigarrillo
  4. WHERE e.localidad='madrid' and c.marca = 'Winston' AND c.marca <> 'celtas';
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:16.