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

problemas al resolver consultas

Estas en el tema de problemas al resolver consultas en el foro de Bases de Datos General en Foros del Web. Tengo una duda respecto a unas consultas que tengo que realizar, agradecería me orienten un poco: supongamos la siguiente tabla. carrera - escuderia - posicion ...
  #1 (permalink)  
Antiguo 27/04/2009, 07:26
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años
Puntos: 2
problemas al resolver consultas

Tengo una duda respecto a unas consultas que tengo que realizar, agradecería me orienten un poco:

supongamos la siguiente tabla.

carrera - escuderia - posicion
1 - Ferrary - 1
1 -Ferrary - 2
2 -Williams- 1
2 - Ferrary- 2
2 - renault - 3


como resuelvo las siguientes consultas:
a) en cuantas carreras llegaron a la meta SOLAMENTE ferrary y williams?
b) en cuantas carreras llegaron a la meta solo ferrary y dos o mas de ellas?
c) en cuantas carreras llegó solamente un auto a la meta y fue una ferrary?


muchas gracias desde ya.
  #2 (permalink)  
Antiguo 27/04/2009, 07:40
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: problemas al resolver consultas

Que tal moron.

que campo te dice si llegó a la meta o si no llegó?
Solo veo que haces referencia a las posiciones que llegaron.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 27/04/2009, 08:01
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años
Puntos: 2
Respuesta: problemas al resolver consultas

Hola, gracias por la respuesta.

En esa tabla estan si llegaron, sino no figuran
  #4 (permalink)  
Antiguo 27/04/2009, 08:13
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: problemas al resolver consultas

a).
Código sql:
Ver original
  1. SELECT COUNT(*) AS solamente_meta FROM tabla WHERE escuderia IN('ferrari','williams');

b).
Código sql:
Ver original
  1. SELECT COUNT(*) AS ferrari_y_mas FROM tabla WHERE escuderia = 'ferrari' AND
  2.      escuderia IN(SELECT escuderia FROM tabla WHERE escuderia <> 'ferrari');

c).
Código sql:
Ver original
  1. SELECT COUNT(*) AS un_auto FROM tabla WHERE escuderia = 'ferrari'
  2.      AND (SELECT COUNT(*) FROM tabla WHERE escuderia = 'ferrari') = 1;

Si te entendí bien, esto te puede servir.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 27/04/2009, 08:21
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años
Puntos: 2
Respuesta: problemas al resolver consultas

estimadicimo, muy agradecido.

saludos
  #6 (permalink)  
Antiguo 27/04/2009, 10:02
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 2 meses
Puntos: 300
Respuesta: problemas al resolver consultas

A)
Código sql:
Ver original
  1. SELECT carrera FROM tabla WHERE escuderia IN('ferrary','williams') GROUP BY carrera HAVING COUNT(DISTINCT escuderia) = 2

B)
Código sql:
Ver original
  1. SELECT COUNT(*)tot,tabla.carrera FROM tabla WHERE carrera NOT IN (SELECT carrera FROM tabla WHERE escuderia <> 'ferrary') GROUP BY carrera HAVING tot >= 2

C)
Código sql:
Ver original
  1. SELECT COUNT(*)tot,tabla.carrera FROM tabla WHERE carrera NOT IN (SELECT carrera FROM tabla WHERE escuderia <> 'ferrary') GROUP BY carrera HAVING tot = 1
Como ves, es muy parecido a lo de huesos52, aunque son precisos algunos cambios al añadir el group by y el having...

Última edición por jurena; 27/04/2009 a las 11:00
  #7 (permalink)  
Antiguo 27/04/2009, 13:46
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: problemas al resolver consultas

Tienes razón jurena.

No había tenido en cuenta que se requiere el conteo por carrera (yo lo hacia por registro). Nunca hice agrupación.

Como lo haces es perfecto.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #8 (permalink)  
Antiguo 28/04/2009, 14:04
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años
Puntos: 2
Respuesta: problemas al resolver consultas

Muchas gracias gente.

saludos
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 18:33.