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

Consulta usando case

Estas en el tema de Consulta usando case en el foro de SQL Server en Foros del Web. Buenos dias, tengo una consulta que hacer. He creado la siguiente tabla basica: create table vendedores ( nomven varchar(50), añoven number(4,0), sueldo number(8,2) ); Luego ...
  #1 (permalink)  
Antiguo 17/05/2011, 10:50
 
Fecha de Ingreso: mayo-2011
Mensajes: 2
Antigüedad: 13 años, 6 meses
Puntos: 0
Consulta usando case

Buenos dias, tengo una consulta que hacer.
He creado la siguiente tabla basica:

create table vendedores (
nomven varchar(50),
añoven number(4,0),
sueldo number(8,2)
);

Luego ingreso los siguientes datos
insert into vendedores values ('Hugo',2000,100);
insert into vendedores values ('William',2001,150);
insert into vendedores values ('Ronald',2002,150);
insert into vendedores values ('Elder',2003,200);
insert into vendedores values ('Ronaldinho',2002,250);
insert into vendedores values ('Hugo',2001,142);
insert into vendedores values ('William',2000,156);
insert into vendedores values ('Ronald',2003,350);
insert into vendedores values ('Elder',2002,95);
insert into vendedores values ('Ronaldinho',2001,30);

Al hacer la consulta respectiva:
select nomven,
case when añoven = 2000 then sueldo end as "2000",
case when añoven = 2001 then sueldo end as "2001" ,
case when añoven = 2002 then sueldo end as "2002",
case when añoven = 2003 then sueldo end as "2003"
from vendedores;
Me muestra la siguiente tabla
nomven 2000 2001 2002 2003
1 Hugo 100
2 William 150
3 Ronald 150
4 Elder 200
5 Ronaldinho 250
6 Hugo 142
7 William 156
8 Ronald 350
9 Elder 95
10 Ronaldinho 30

Lo que deseo saber es como modificar esa consulta para que solo muestro 1 nombre, con su sueldo por año
1 Hugo 100 142

Gracias por sus tiempo.
  #2 (permalink)  
Antiguo 17/05/2011, 11:17
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Consulta usando case

Código SQL:
Ver original
  1. SELECT nomven,SUM("2000") AS "2000" , SUM("2001") "2001" , SUM("2002") AS "2002",SUM("2003") "2003" FROM
  2. (
  3. SELECT nomven,
  4. CASE WHEN añoven = 2000 THEN sueldo ELSE 0 END AS "2000",
  5. CASE WHEN añoven = 2001 THEN sueldo ELSE 0 END AS "2001" ,
  6. CASE WHEN añoven = 2002 THEN sueldo ELSE 0 END AS "2002",
  7. CASE WHEN añoven = 2003 THEN sueldo ELSE 0 END AS "2003"
  8. FROM vendedores) t1 GROUP BY nomven

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 17/05/2011, 11:56
 
Fecha de Ingreso: mayo-2011
Mensajes: 2
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Consulta usando case

Genial, gracias por tu ayuda.

Etiquetas: case
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 06:56.