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