SQL Server - Consulta con select

 
Vista:

Consulta con select

Publicado por achafio (37 intervenciones) el 20/12/2006 16:40:58
Tengo el sgte inconveniente, tengo que hacer un select en la cual las filas que me muestren tengo que ponerlo como encabezado, es decir, suponiendo que al hacer un select me salga la sgte data.

SELECT campo1, campo2
FROM TABLAS

Me muestra:
campo1 campo2
A 15
A 5
B 2
C 1

Lo que tengo que hacer es que la data del campo1, se muestre como nombre de columna y la data del campo2 sumarla deacuerdo al campo1, es decir:

A B C
20 2 1

Se puede hacer esto?, si me lo han pedido supongo que si se puede.

Es muy urgente

Gracias.
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

RE:Consulta con select

Publicado por Isaías (3308 intervenciones) el 20/12/2006 19:07:38
Prueba esto:

SELECT
SUM(CASE WHEN campo1 = 'A' THEN Campo2 END) AS 'A',
SUM(CASE WHEN campo1 = 'B' THEN Campo2 END) AS 'B',
SUM(CASE WHEN campo1 = 'C' THEN Campo2 END) AS 'C'
FROM TABLAS
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

RE:Consulta con select

Publicado por achafio (37 intervenciones) el 20/12/2006 19:49:46
Gracias por la ayuda
Pero el número de filas no es fijo, puede ser que sea de 7, 10, etc, como haría en ese caso.
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

RE:Consulta con select

Publicado por ale (4 intervenciones) el 20/12/2006 23:46:44
hola mira se me ocurre que hagas mas o menos lo sig bueno tendras q corregir codigo ya que se esta utilizando algunos qrys dinamicos entonces corrige la sintaxis donde corresponde

primero puedes crear una tabla temporal
create table #temporal
(
campo2 as integer
)
luego
haces 1 cursor
declare cur1 cursor
for select distinct(c1)
from tabla
open cur1
fetch next from cur1
into @c1

while @@fetch_status<>0
begin

aqui corrige sintaxis query dinamico si detectas algo mal

declare @sql varchar(50)
@sql=' alter tabla #temporal add'+ @c1+' as integer'
exe (@sql)

select @suma=sum(c2)
from tabla
where c1=@c1

update #temporal set c2=@suma
where c1=@c1

fetch nex cur1
into @c1

end

close cur1
dealloate cur1
select * from #temporal

mas o menos asi yo pienso puede quedar espero te sirva
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