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

consultas complejas

Estas en el tema de consultas complejas en el foro de Bases de Datos General en Foros del Web. hola, soy nuevo y ya empece con unas preguntas. tengo que entregar un trabajo y tengo que hacer ciertas consultas que no tengo ni idea. ...
  #1 (permalink)  
Antiguo 24/11/2010, 21:05
 
Fecha de Ingreso: noviembre-2010
Mensajes: 48
Antigüedad: 13 años, 5 meses
Puntos: 0
consultas complejas

hola, soy nuevo y ya empece con unas preguntas.
tengo que entregar un trabajo y tengo que hacer ciertas consultas que no tengo ni idea.
yo tengo las siguientes tablas
cliente(id,nombre,ced)
ventas(id,sucursal,idcliente,fechaventa,montoventa ,financia,cuotas)
pagos ventas(idventas,idpagos,montopago)
sucursal(idsuc, nombre)
casa(id,nombre,precio,idtipo)
tipocosa(idtipo,descripcion)
persona(id,nombre,sexo,ced)

las consultas que tengo que hacer son las siguientes:
1) listar los cliente que deben mas de cada una de las sucursales.
2) listar las sucursales que han vendido todos los tipos de casas
3) seleccionar los tipos casa que han sido comprada solo por hombre o solo por mujeres

por favor si alguien puede ayudarme se lo agradesco.
  #2 (permalink)  
Antiguo 25/11/2010, 08:48
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: consultas complejas

Buenos días holanarutouzumaki, esto es un trabajo que tú tienes que hacer, por lo que no es correcto que pidas que lo hagamos nosotros. Al menos intentaste hacer las consultas??? En más de una ocasión he comentado que este tipo de trabajos es justamente para que el alumno practique y pueda familiarizarse con los problemas que se va a enfrentar una vez que termine la carrera. Te pido entonces que hagas un esfuerzo por obtener las consultas, y si tienes problemas con alguna pues entonces si acudes a los foros y con gusto tratamos de ayudarte.

Saludos.
Leo.
  #3 (permalink)  
Antiguo 29/11/2010, 17:10
 
Fecha de Ingreso: noviembre-2010
Mensajes: 48
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: consultas complejas

hola leonardo_josue gracias igual por contestar. hace mas o menos un mes que estoy trancado con lo mismo y no lo he podido hacer.

esta es una consulta que hice pero no me funciona que me pide lo siguiente:
listar la venta mas grande que tuvo la empresa, de dicha venta se nesecita saber la fecha, formapago, nombrevendedor, nombre y num de sucursal, monto venta y cuantas casa se vendieron.

select max(MontoVenta),
FchVenta,FinanciaVenta,NombrePer,NombreSuc,IdSuc,U nidades
from venta v, sucursal s, detalleventa dv
where ((v.IdCli in (select NombrePer from persona where IdPer=v.IdCliente)) and
(v.IdSuc in(select IdSuc,NombreSuc from sucursal where IdSuc=v.IdSuc)) and
(select unidades from detalleventa where IdVenta=v.IdVenta))

pero no me funciona al igual que otra que intente hacer.
gracia por tu respuesta.
  #4 (permalink)  
Antiguo 01/12/2010, 11:07
 
Fecha de Ingreso: noviembre-2010
Mensajes: 48
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: consultas complejas

disculpa que te escriba de nuevo.
necesito saber como declara una variable para guardar la resta de dos campos de distintas tablas.
tengo que hacer el montoventa - montopago y eso lo tengo que guardar para despues seleccionar el que debe mas.
gracias saludos
  #5 (permalink)  
Antiguo 01/12/2010, 13:07
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: consultas complejas

en sql es asi:

Código SQL:
Ver original
  1. DECLARE @variable AS tipo dato
  2.  
  3. En tu caso seria
  4. DECLARE @resta AS INT

Saludos!
  #6 (permalink)  
Antiguo 01/12/2010, 13:25
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: consultas complejas

Buenas tardes holanarutouzumaki:

Vamos por partes:

Cita:
Iniciado por holanarutouzumaki Ver Mensaje
listar la venta mas grande que tuvo la empresa, de dicha venta se nesecita saber la fecha, formapago, nombrevendedor, nombre y num de sucursal, monto venta y cuantas casa se vendieron.

select max(MontoVenta),
FchVenta,FinanciaVenta,NombrePer,NombreSuc,IdSuc,U nidades
from venta v, sucursal s, detalleventa dv
where ((v.IdCli in (select NombrePer from persona where IdPer=v.IdCliente)) and
(v.IdSuc in(select IdSuc,NombreSuc from sucursal where IdSuc=v.IdSuc)) and
(select unidades from detalleventa where IdVenta=v.IdVenta))

pero no me funciona al igual que otra que intente hacer.
gracia por tu respuesta.
Hay varios detalles que hay que corregir en tu consulta,

primero, para hacer la unión entre dos tablas utiliza la cláusula JOIN, en lugar de subconsultas o de hacer las uniones de manera explícita en la sección where. Puedes preguntarle a Santa Wikipedia cómo es que trabajan los JOIN's si es que no conoces al respecto:

http://es.wikipedia.org/wiki/Join

Segundo, tengo dudas con respecto a tu tabla DetalleVentas creo que aquí almacenas el número de casas que intervinieron en la venta pero no muestras información acerca de esta tabla

Supongo que la relación entre ventas y detalleVentas es de uno a muchos, por lo tanto te conviene hacer una subconsulta con un count(*) para determinar cuántas casas se vendieron. sería algo más o menos así

Código MySQL:
Ver original
  1. Select v.id,
  2. (select count(*) from detalleVentas dv where v.id = dv.idVenta) as CasasVendidas
  3. ventas v

Trata de avanzar con tu consulta y si continuas con problemas nos comentas para tratar de ayudarte.

Saludos
Leo.
  #7 (permalink)  
Antiguo 02/12/2010, 06:27
 
Fecha de Ingreso: noviembre-2010
Mensajes: 48
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: consultas complejas

Cita:
Iniciado por Libras Ver Mensaje
en sql es asi:

Código SQL:
Ver original
  1. DECLARE @variable AS tipo dato
  2.  
  3. En tu caso seria
  4. DECLARE @resta AS INT

Saludos!
Gracias libra, me ha sidoo de mucha ayuda para los procedure
  #8 (permalink)  
Antiguo 02/12/2010, 06:31
 
Fecha de Ingreso: noviembre-2010
Mensajes: 48
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: consultas complejas

leo que tal???
una consulta, tengo que usar el cociente que es algo asi

'nombre de los empleados que trabajan en todos los proyectos controlados por el depto 5'
empleado que no no trabajo en un proyecto controlado por el depto 5 y que a su vez empleado trabajo en el ptoyecto de depto 5

select nom_emp from empleado e
where not exists (select *
from trabaja b
where (b.cod_proy in (select cod_proy
from proyecto
where cod_depto=5))
and not exists(select *
from trabaja c
where c.nro_doc=e.nro_doc and
c.cod_proy=b.cod_proy));

Pero necesito saber las sacursales que han vendido todos los tipos de casa y lo que tenemos que usar es la noble negacion que es lo de arriba que esta hecho para un ejemplo.
gracias

Etiquetas: bases-de-datos
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 08:12.