我有一个票务系统(itsm),我需要返回最新的记录,从一个表和许多其他记录相同的票。
在上面的图片上,您可以看到select的输出(我将粘贴到下面)。请注意,PBTI_WORKORDER_ID列显示了票证ID,而我要做的只是显示最大的request_id (图像上的第一行)。
选择是:
SELECT
MAX(REQUEST_ID),
(PBTI_WORKORDER_ID),
PBTI_IDREQUISICAO,
TO_CHAR(SECS_TO_DATE(PBTI_DTABERTURA),'DD/MM/YYYY HH24:MI:SS') AS DATA_CRIACAO,
PBTI_GRUPOSUPORTEATUAL AS GRUPO_ATUAL,
TO_CHAR(SECS_TO_DATE(PBTI_DATAENTRADAGRUPO),'DD/MM/YYYY') AS DATA_ENTRADA,
TO_CHAR(SECS_TO_DATE(PBTI_DATASAIDAGRUPO),'DD/MM/YYYY') AS DATA_SAIDA_GRUPO,
PBTI_PROXIMOGRUPOSUPORTE AS PROXIMO_GRUPO,
REQUEST_ASSIGNEE,
CATEGORIZATION_TIER_1,
CATEGORIZATION_TIER_2,
CATEGORIZATION_TIER_3,
CUSTOMER_ORGANIZATION,
PBTI_MCU_ORG
FROM PBTI_TABELA_INDICADORES
WHERE PBTI_GRUPOSUPORTEATUAL = 'CENTRAL HD - TRATAMENTO'
GROUP BY (REQUEST_ID),
(PBTI_WORKORDER_ID),
(PBTI_IDREQUISICAO),
(PBTI_DTABERTURA),
(PBTI_GRUPOSUPORTEATUAL),
(PBTI_DATAENTRADAGRUPO),
(PBTI_DATASAIDAGRUPO),
(PBTI_PROXIMOGRUPOSUPORTE),
(REQUEST_ASSIGNEE),
(CATEGORIZATION_TIER_1),
(CATEGORIZATION_TIER_2),
(CATEGORIZATION_TIER_3),
(CUSTOMER_ORGANIZATION),
(PBTI_MCU_ORG)
ORDER BY PBTI_DATAENTRADAGRUPO DESC;
MAX (用于select子句)应该只带第一行,不是吗?
tks
发布于 2015-10-30 19:54:56
实现这一目标的一种方法是生成一组由每个票证(B)的最大request_ID组成的数据集。然后,使用所有记录将该集合连接回基本集(A),从而使用连接只保留每个票证/请求的相关“最新”记录。
就像这样..。
SELECT A.*
FROM PBTI_TABELA_INDICADORES A
INNER JOIN (SELECT max(request_ID) Request_Id, PBTI_WorkORder_Id, PBTI_IDREQUISICAO
FROM PBTI_TABELA_INDICADORES
GROUP BY PBTI_WorkORder_Id, PBTI_IDREQUISICAO) B
on A.Request_Id = B.Request_Id
and A.PBTI_WorkORder_Id = B.PBTI_WorkORder_Id
and A.PBTI_IDREQUISICAO = B.PBTI_IDREQUISICAO
https://stackoverflow.com/questions/33443859
复制相似问题