Gracias me funciona bien, había implementado esto:
Código SQL:
Ver originalSELECT [ORD_IDORDEN], HYP = MAX([ORD_TIPORDEN]),
--MAX(ESTADO = case when [ORE_STATUS]='A' then 'ABIERTA' when [ORE_STATUS]='DG' then 'DETENIDA X GERENCIA' when [ORE_STATUS]='DR' then 'DETENIDA POR REFACC' when [ORE_STATUS]='P' then 'EN PROCESO' ELSE 'CERRADA' END),
FECHA = MAX([ORE_FECHAORD])
FROM [GOMSA356].[dbo].[SER_ORDENDET] A, [GOMSA356].[dbo].[SER_ORDEN] B
WHERE A.[ORD_IDORDEN] = [ORE_IDORDEN] AND (B.[ORE_STATUS]= 'A' OR B.[ORE_STATUS] = 'DG' OR B.[ORE_STATUS] = 'DR' OR B.[ORE_STATUS] = 'P' OR B.[ORE_STATUS] = 'T') AND ORE_FECHAORD LIKE '%/04/2013' AND ORD_TIPORDEN IN('H', 'J', 'Q', 'S', 'Z')
GROUP BY [ORD_IDORDEN])
y me da los registros que quiero; claro con distinct elimino filas duplicadas buen dato!!
ya con tu ajuste que da así:
Código SQL:
Ver originalSELECT DISTINCT
[ORD_IDORDEN],
[ORD_TIPORDEN],
Estado=CASE WHEN [ORE_STATUS]='A' THEN 'ABIERTA' WHEN [ORE_STATUS]='DG' THEN 'DETENIDA X GERENCIA' WHEN [ORE_STATUS]='DR' THEN 'DETENIDA POR REFACC' WHEN [ORE_STATUS]='P' THEN 'EN PROCESO' ELSE 'CERRADA' END,
[ORE_FECHAORD]
FROM
[GOMSA356].[dbo].[SER_ORDENDET] A, [GOMSA356].[dbo].[SER_ORDEN] B
WHERE
A.[ORD_IDORDEN] = [ORE_IDORDEN]
AND (B.[ORE_STATUS]= 'A'
OR B.[ORE_STATUS] = 'DG'
OR B.[ORE_STATUS] = 'DR'
OR B.[ORE_STATUS] = 'P' OR B.[ORE_STATUS] = 'T')
AND ORE_FECHAORD LIKE '%/04/2013'
AND ORD_TIPORDEN IN('H', 'J', 'Q', 'S', 'Z')
ORDER BY [ORD_IDORDEN]
pero lo que queria era contarlos y me quedo así:
Código SQL:
Ver originalSELECT COUNT
(DISTINCT [ORE_IDORDEN]) AS HYP
FROM
[GOMSA356].[dbo].[SER_ORDENDET] A,
[GOMSA356].[dbo].[SER_ORDEN] B
WHERE
A.[ORD_IDORDEN] = [ORE_IDORDEN]
AND (B.[ORE_STATUS]= 'A'
OR B.[ORE_STATUS] = 'DG'
OR B.[ORE_STATUS] = 'DR'
OR B.[ORE_STATUS] = 'P'
OR B.[ORE_STATUS] = 'T')
AND ORE_FECHAORD LIKE '%/04/2013'
AND ORD_TIPORDEN IN('H', 'J', 'Q', 'S', 'Z')
--ORDER BY [ORD_IDORDEN]
Una duda más: mira ya lo pude contar pero de esa consulta quiero me de los conteos de varias casos este seria para HYP pero necesito que en en el mismo conteo me salga 3 tipos y las unicas condiciones son las siguientes
AND ORD_TIPORDEN IN('H', 'J', 'Q', 'S', 'Z') AS HYP
AND ORD_TIPORDEN IN('I', 'E', 'N', 'R', 'T', 'V', 'A') AS MECANICA
AND ORD_TIPORDEN IN('L', 'O', 'X') AS REFACCIONES
No se si se pueda hacer con case o con join, me tendria que dar lo siguiente:
HYP MECANICA REFACCIONES
67 77 45