Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-12-2007
Avatar de Gaim2205
Gaim2205 Gaim2205 is offline
Miembro
 
Registrado: ago 2007
Ubicación: Durango, Mexico
Posts: 144
Poder: 17
Gaim2205 Va por buen camino
consulta sql server 2000 con pivot, ni idea...

He tratado realizar una consulta sin éxito, voy a explicar lo mejor posible y ojalá alguien con mejores conocimientos de sql que yo (que serán muchos) pueda ayudarme.

Obtendré la informacion de 3 tablas(campos):
- tabla trabajadores(trabajador[int], nombre[char])
- tabla acum_concepto(trabajador[int], concepto[int], importe[real])
- tabla conceptos(concepto[int], descripcion[char])

y el resultado que necesito es el siguiente:

Trabajador - Nombre - descripcionconcepto1... descripcionconceptoN
1 - Juan... - ImporteConcepto1... - ImporteConceptoN

Como pueden ver, necesita "pivotearse" el campo acum_concepto.concepto para que cada concepto encontrado sea una columna del resultado. A su vez debe mostrarse la descripcion del concepto(conceptos.descripcion), no acum_concepto.concepto(que es numérico)

Espero haberme dado a entender, aprecio mucho cualquier ayuda en el tema.
Responder Con Cita
  #2  
Antiguo 05-12-2007
Avatar de Gaim2205
Gaim2205 Gaim2205 is offline
Miembro
 
Registrado: ago 2007
Ubicación: Durango, Mexico
Posts: 144
Poder: 17
Gaim2205 Va por buen camino
Hasta el momento tengo esto. Que es algo sencillo

Código SQL [-]
SELECT DISTINCT
Fecha,
case when Concepto = 1110 then importe else 0 end Sueldo,
case when Concepto = 1310 then importe else 0 end PremioAsistencia
FROM dbo.acum_concepto 
WHERE 
dbo.acum_concepto.trabajador = 8089 and dbo.acum_concepto.fecha 
between '20071028' and '20071125' 
order by dbo.acum_concepto.fecha

Pero por cada concepto diferente se agrega un renglon, dejando los demas conceptos en 0. Como puedo hacer que todos los conceptos de una misma fecha aparezcan en el mismo renglon?

Gracias!
Responder Con Cita
  #3  
Antiguo 05-12-2007
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Añade funciones de suma y agrupa por el campo que quieras

Código SQL [-]
SELECT Fecha,
sum(case when Concepto = 1110 then importe else 0 end) AS Sueldo,
sum(case when Concepto = 1310 then importe else 0 end) AS PremioAsistencia
FROM dbo.acum_concepto 
WHERE 
dbo.acum_concepto.trabajador = 8089 and dbo.acum_concepto.fecha 
between '20071028' and '20071125' 
group by fecha
order by dbo.acum_concepto.fecha

Espero que te sirva.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas conectividad instalando sql server 2000 en w2k server ospaco69 MS SQL Server 1 16-02-2007 04:39:17
Exportar database sql server 2005 a sql server 2000 ErenioDhG Conexión con bases de datos 1 29-08-2006 15:42:46
Pasar consulta de FireBird a MS SQL server 2000 sakuragi SQL 8 30-08-2005 20:51:09
Problema consulta sql con transform y pivot sgarrido Conexión con bases de datos 10 11-05-2004 20:48:20
Ms Word 2000/97 + Ms sql server 7/2000 + almacenar - leer - actualizar Campos jcp_nqn Servers 0 21-12-2003 01:55:14


La franja horaria es GMT +2. Ahora son las 21:13:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi