ayuda.. necesito hacer una consulta de una tabla con varias condiciones
Publicado por Javier (3 intervenciones) el 10/05/2017 04:57:20
buenas amigos, necesito de alguien que me ayude o me oriente porque no se como hacer una consulta como dice el titulo son varias condiciones en una misma tabla......los valores de la BD es algo como esto:
piloto escuderia puntos pole position
nino alfa 9 1
juan m alfa 6 3
luigi alfa 4 2
reg talbot 3 5
yves talbot 2 4
bob era 0 7
cuth talbot 0 8
david era 0 9
joe maserati 0 6
prince maserati 0 11
geoff maserati 0 10
nino alfa 9 2
cuth talbot 6 1
david era 4 3
joe maserati 3 4
juan m alfa 2 5
prince maserati 0 7
geoff maserati 0 8
luigi alfa 0 10
reg talbot 0 11
yves talbot 0 6
bob era 0 9
juan m alfa 9 2
luigi alfa 6 3
nino alfa 4 1
yves talbot 3 4
bob era 1 6
cuth talbot 1 8
david era 0 7
joe maserati 0 10
prince maserati 0 11
geoff maserati 0 9
ahora lo que necesito es que muestre todos los pilotos sin repetirse, que a su vez sume el valor de los puntos y que cuente los pilotos que obtuvieron la pole = '01' sino pole='0' para el resto de los mismos...
bien yo tengo el codigo pero por separado y el count nada mas muestra los elemento con la coincidencia '01'...
para el caso de la suma de los valores en los puntos de los pilotos es:
select distinct cod_piloto,sum(cast(puntos as numeric)) as punto from carreras where cod_piloto in (select cod_piloto from carreras) group by cod_piloto order by cod_piloto
el resultado da:
piloto puntos pole position
nino 22 2
juan m 17 0
luigi 10 0
cuth 7 1
david 4 0
......... y asi sucesivamente muestra el resto de los datos de la BD, hago la salvedad que la columna escudera no me la mostra
para contar los pilotos que obtuvieron la pole='01' sino pole='0' es:
select distinct cod_piloto,count(pole_position) as pole from carreras where pole_position='01' and cod_piloto in (select cod_piloto from carreras) group by cod_piloto order by cod_piloto
piloto escuderia pole position
nino alfa 2
cuth talbot 1
pero en este caso no muestra el resto de los pilotos con pole position en 0 porque no se como hacer esa condicion y tampoco muestra la escuderia ya que como el caso anterior no la muestra
por tanto les agradezco de su ayuda u orientacion , todo esto lo hago para una pagina web pero queria hacerla usando puro sql sino quiza me tocaria usar arreglos pero bueno espero me ayuden ...gracias de antemano compas....
piloto escuderia puntos pole position
nino alfa 9 1
juan m alfa 6 3
luigi alfa 4 2
reg talbot 3 5
yves talbot 2 4
bob era 0 7
cuth talbot 0 8
david era 0 9
joe maserati 0 6
prince maserati 0 11
geoff maserati 0 10
nino alfa 9 2
cuth talbot 6 1
david era 4 3
joe maserati 3 4
juan m alfa 2 5
prince maserati 0 7
geoff maserati 0 8
luigi alfa 0 10
reg talbot 0 11
yves talbot 0 6
bob era 0 9
juan m alfa 9 2
luigi alfa 6 3
nino alfa 4 1
yves talbot 3 4
bob era 1 6
cuth talbot 1 8
david era 0 7
joe maserati 0 10
prince maserati 0 11
geoff maserati 0 9
ahora lo que necesito es que muestre todos los pilotos sin repetirse, que a su vez sume el valor de los puntos y que cuente los pilotos que obtuvieron la pole = '01' sino pole='0' para el resto de los mismos...
bien yo tengo el codigo pero por separado y el count nada mas muestra los elemento con la coincidencia '01'...
para el caso de la suma de los valores en los puntos de los pilotos es:
select distinct cod_piloto,sum(cast(puntos as numeric)) as punto from carreras where cod_piloto in (select cod_piloto from carreras) group by cod_piloto order by cod_piloto
el resultado da:
piloto puntos pole position
nino 22 2
juan m 17 0
luigi 10 0
cuth 7 1
david 4 0
......... y asi sucesivamente muestra el resto de los datos de la BD, hago la salvedad que la columna escudera no me la mostra
para contar los pilotos que obtuvieron la pole='01' sino pole='0' es:
select distinct cod_piloto,count(pole_position) as pole from carreras where pole_position='01' and cod_piloto in (select cod_piloto from carreras) group by cod_piloto order by cod_piloto
piloto escuderia pole position
nino alfa 2
cuth talbot 1
pero en este caso no muestra el resto de los pilotos con pole position en 0 porque no se como hacer esa condicion y tampoco muestra la escuderia ya que como el caso anterior no la muestra
por tanto les agradezco de su ayuda u orientacion , todo esto lo hago para una pagina web pero queria hacerla usando puro sql sino quiza me tocaria usar arreglos pero bueno espero me ayuden ...gracias de antemano compas....
Valora esta pregunta


0