Resumen Transform de Access en Sql Server

Mensaje enviado por YAMIL BRACHO <brachoy@pdvsa.com>

Muy cierto, Salvador , no tenemos esa instruccion en SQL Server asi que debes
usar CASE... WHEN. Si tomanos la instruccion que usas en Access para generar tu
crossTab

tabla HISTORICA
FOLIO DIRECCION STATUS
0001 AM 1
0002 AM 2
0003 FM 1
0004 AM 3
0005 CA 1
0006 CL 1
0007 AM 3

tabla STATUS
STATUS DESCRIPCION
1 PENDIENTE
2 CONCLUIDO
3 EN TRANSITO

Con esta query, obtenia el siguiente resultado

TRANSFORM COUNT(HISTORICA.STATUS)
SELECT HISTORICA.NOMBRE
FROM (HISTORICA INNER JOIN STATUS ON HISTORICA.ID_STATUS = STATUS.STATUS)
GROUP BY MAE_DIRECCIONES.NOMBRE
PIVOT MAE_STATUS.STATUS

Obteniendo el Siguiente resultado

                              1 2
3 <-----------CONTABILIZACION POR CADA STATUS
AM 1 1 2
FM 1 0 0
CA 1 0 0
CL 1 0 0

En SQL Server seria algo como

SELECT historica.nombre,
COUNT(CASE historica.status WHEN 1 THEN historica.status ELSE 0 END) AS
'PENDIENTE',
COUNT(CASE historica.status WHEN 2 THEN historica.status ELSE 0 END) AS
'CONCLUIDO',
COUNT(CASE historica.status WHEN 3 THEN historica.status ELSE 0 END) AS 'EN
TRANSITO'
COUNT(historica.status) AS 'Total'
FROM (historica INNER JOIN status ON historica.id_status = status.status)
GROUP BY mae_direcciones.nombre

Espero esto te ayude

Yamil



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com