SQL - Query Basico

   
Vista:

Query Basico

Publicado por Andres Arcos (4 intervenciones) el 09/01/2012 18:52:53
Hola, espero que alguien me pueda ayudar. No tengo muchos conocimientos en sql y necesito hacer algo que seguro no es tan dificil.
Tengo una tabla de la siguiente forma:

id nombre estado_auto
1 juan 1
2 juan 1
3 juan 2
4 pedro 1
5 pedro 2
6 pablo 1
7 pablo 1
8 luis 1
9 luis 2
10 luis 2
11 luis 2

Cada registro representa un auto, que pertenece a un usuario. Es decir que juan posee 3 autos. El estado es 1: viejo 2:nuevo
Es decir que juan tiene 2 autos viejos y 1 nuevo.

Lo que necesito es hacer una consulta que me devuelva el numero de autos VIEJOS que tiene cada usuario y ordenado por el numero de autos, el que mas tiene primero, asi:

Juan 2
pablo 2
pedro 1
luis 1

Gracias por la ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Query Basico

Publicado por leonardo_josue (877 intervenciones) el 10/01/2012 16:12:23
Hola Andres Arcos:

Tu mismo lo dices en tu post: Esto es un Query Básico. No necesitas más que utilizar la función COUNT y agrupar (GROUP BY) por los campos que quieres mostrar. Para filtrar sólo los autos viejos, pon la condición en la sección WHERE de la consulta.

En tu post no mencionas qué problema tienes, es decir, ¿Qué intentaste hacer y dónde está el fallo?

Es recomendable que siempre que publiques algo incluyas también algo del código que haz intentado ejecutar, para así ayudarte a afinar la consulta o en su defecto indicarte alguna otra alternativa.

Saludos
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Query Basico

Publicado por Andres Arcos (4 intervenciones) el 10/01/2012 16:14:08
El problema es que no se sql. Solo selects basicos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Query Basico

Publicado por leonardo_josue (877 intervenciones) el 10/01/2012 18:54:03
Insisto, esta es una consulta básica, no necesitas tener un conocimiento amplio en SQL para obtenerla, te repito, es simplemente un SELECT, un COUNT, una condición WHERE y una sección GROUP BY. En el post pasado te pedía que pusieras algo de lo que intentaste hacer, pero sólo te tomaste el tiempo para decir que no sabes SQL...

Creo que el problema no es que no sepas sql... tal pareciera que el problema es que no quieres aprenderlo... si te hubieras tomado la molestia preguntarle a San Google algo de ayuda sobre FUNCIONES DE AGREGACIÓN en SQL server (en concreto la función COUNT) esto seguro que con los ejemplos hubieras dado con la respuesta.

Compañero, no esperes que aquí se te den las respuestas a tus problemas. El foro es una guía, pero lo menos que esperamos es que pongas algo de tu parte. Si dices que no sabes mucho de SQL, pues descarga cualquier manual de principiante y dale un vistazo o acude a la ayuda en línea del motor de BD que estás utilizando. El foro debería ser la última opción para encontrar ayuda si es que por tu cuenta no haz dado con la respuesta.

Estamos en la mejor disposición de ayudar, pero no estamos dispuestos a hacer el trabajo de otro. Espero que no tomes a mal estas palabras.

Saludos.
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Query Basico

Publicado por Andres Arcos (4 intervenciones) el 10/01/2012 19:00:35
Te entiendo, pero yo no trabajo con bases de datos. Mi especializacion es otra. Esto que pregunto es algo ocacional. No necesito aprender SQL, solo lo necesitaba específicamente esta consulta por una aplicacion que estoy desarrollando y la persona que se encarga de la parte de la base no se encuentra.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Query Basico

Publicado por Ing. Aneurys Tapia González aneurystg@hotmail.com (1 intervención) el 11/01/2012 19:32:12
Saludos,

El Query es sencillo, lo importante es que trates de aprender de SQL, si planeas continuar utilizandolo....

select
nombre,
count(1) 'Total Autos',
SUM(CASE estado_auto WHEN 1 THEN 1 ELSE 0 END) 'Autos Viejos',
SUM(CASE estado_auto WHEN 2 THEN 1 ELSE 0 END) 'Autos Nuevos'
from
dbo.Table -- Reemplaza Table por el nombre de tu tabla.
group by
nombre

Resultado:
nombre Total Autos Autos Viejos Autos Nuevos
juan 3 2 1
luis 4 1 3
pablo 2 2 0
pedro 2 1 1

Sin más,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Query Basico

Publicado por Andres Arcos (4 intervenciones) el 11/01/2012 20:35:49
Muchas gracias, lo voy a intentar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar