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

ayuda para consultas

Estas en el tema de ayuda para consultas en el foro de Mysql en Foros del Web. Hola, como hago las siguientes consultas? 1ero: Soldados(datos personales que tuvieron licencia de mas de 15 dias) 2do: Cuarteles que cumplen que tienen mas de ...
  #1 (permalink)  
Antiguo 10/06/2008, 16:25
 
Fecha de Ingreso: junio-2008
Mensajes: 4
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta ayuda para consultas

Hola, como hago las siguientes consultas?
1ero: Soldados(datos personales que tuvieron licencia de mas de 15 dias)
2do: Cuarteles que cumplen que tienen mas de 4 compañias
3ro: Cuarteles que superaron los $500.000 de gastos totales

Estas son las tablas:
Soldado (DniMilitar, NroSoldado, graduación, NroCompañìa)
Licencia (NroLicencia, motivo, FechaInicio, FechaFin, DniMilitar)
Cuartel (CodCuartel, nombre, ubicación, DniMilitar, CodCuerpo)
Compañía (NroCompañìa, CodCuartel)
almacena (CodCuartel, NroGasto, monto)

Última edición por euge_nad; 10/06/2008 a las 19:08
  #2 (permalink)  
Antiguo 11/06/2008, 16:27
 
Fecha de Ingreso: junio-2008
Mensajes: 21
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: ayuda para consultas

hola que tal mandame la base de datos a mi correo para ver en que te puedo ayudar pero me mandas la base de datos con datos

este es mi correo [email protected]
  #3 (permalink)  
Antiguo 11/06/2008, 22:55
Avatar de manyametal  
Fecha de Ingreso: enero-2008
Mensajes: 36
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: ayuda para consultas

1- select soldados.* from soldados as S, licencia as L where S.DniMilitar = L.DniMilitar and DateDiff("d", fechaFin, fechaInicio) > 15;

2- select * from Cuartel as C, Compania as D where C.CodCuartel = D.CodCuartel group by D.CodCuartel having count(*)>4;

3-select * from cuartel as C, almacena as A where C.CodCuartel = A.CodCuartel group by CodCuartel having sum(A.monto)> 500.000;

probalo, no se si estara bien,, si alguno corrige
  #4 (permalink)  
Antiguo 12/06/2008, 08:45
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: ayuda para consultas

Viene a ser lo mismo que te ha recomendado manyametal, pero con algunos pequeños retoques y con el uso de INNER JOIN

1-SELECT soldados.* FROM soldados AS S INNER JOIN licencia AS L ON S.DniMilitar = L.DniMilitar WHERE DATEDIFF (fechaFin, fechaInicio) > 15;

2- SELECT * FROM Cuartel AS C INNER JOIN Compania AS D ON C.CodCuartel = D.CodCuartel GROUP BY D.CodCuartel HAVING COUNT(D.NroCompañìa)>4;
o tal vez también así SELECT * FROM Cuartel AS C INNER JOIN Compania AS D ON C.CodCuartel = D.CodCuartel WHERE COUNT(D.NroCompañìa)>4 GROUP BY D.CodCuartel;

3-SELECT * FROM cuartel AS C INNER JOIN almacena AS A ON C.CodCuartel = A.CodCuartel GROUP BY CodCuartel HAVING SUM(A.monto)> 500000;
o tal vez también así:
SELECT * FROM cuartel AS C INNER JOIN almacena AS A ON C.CodCuartel = A.CodCuartel WHERE SUM(A.monto)> 500000 GROUP BY CodCuartel
  #5 (permalink)  
Antiguo 12/06/2008, 09:12
 
Fecha de Ingreso: junio-2008
Mensajes: 4
Antigüedad: 15 años, 10 meses
Puntos: 0
De acuerdo Respuesta: ayuda para consultas

Hola Gente MUCHAS GRACIAS!! solo me quedan probar sus concultas.. pero desde ya me sirve un monton! pero si que pueden seguir mandando respuestas

Última edición por euge_nad; 12/06/2008 a las 09:23
  #6 (permalink)  
Antiguo 23/06/2008, 14:02
 
Fecha de Ingreso: junio-2008
Mensajes: 4
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: ayuda para consultas

Funcionaron muy bien! Muchas gracias por el aporte..
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 18:24.