加入并展示最新活动

时间:2014-12-01 11:27:30

标签: sql-server-2008 join

我需要生成所有打开且状态为“分析”的“门票”的相关内容,我需要在两个表中进行连接。

第一个:

 SELECT TOP 1000
       [nsu_sugestao]
      ,[num_sugestao_papel]
      ,[edv_promotor]

  FROM [NovoCLIC].[dbo].[Sugestao]

此选择的示例:

nsu_sugestao    num_sugestao_papel  edv_promotor
1               372759              92602045

在这一个中,num_sugestao_papel是票的编号,edv_promotor是拥有它的人。

第二个:

 SELECT TOP 1000
       [iClic]
      ,[iStatus]
      ,[dtDateCreated]        
 FROM [NovoCLIC].[dbo].[T_STATUS_CLIC]

例:

iClic   iStatus     dtDateCreated
1       1           1999-01-25 13:33:00.000

iClic是票号,iStatus是当前状态,dtDateCreated

我需要显示最后状态为分析的所有故障单,状态分析是iStatus列中的数字2,我不需要已经使用不同于2的数字的故障单。

SELECT TOP 1000 [nsu_sugestao]
    --  ,n.num_sugestao_papel
    --  ,n.edv_promotor
    --  ,s.iStatus
    --  ,s.dtDateCreated

 -- FROM [NovoCLIC].[dbo].[Sugestao]
 -- with     
   --  select s.dtDateCreated,MAX(s.EventDate)latestDate
--   from  [NovoCLIC].[dbo].[T_STATUS_CLIC] s
 --  right join [NovoCLIC].[dbo].[T_STATUS_CLIC] s on [NovoCLIC].[dbo].[Sugestao] = 

我正在尝试这样的事情,但我遇到了很多错误。

1 个答案:

答案 0 :(得分:1)

尝试下面给出的代码并向我们提供反馈

SELECT
       S.[nsu_sugestao]
      ,S.[num_sugestao_papel]
      ,S.[edv_promotor]
      ,T.[iClic]
      ,T.[iStatus]
      ,T.[dtDateCreated]
FROM [NovoCLIC].[dbo].[Sugestao] S
INNER JOIN [NovoCLIC].[dbo].[T_STATUS_CLIC] T on S.nsu_sugestao = T.iClic
INNER JOIN (
    SELECT
           [iClic]
          ,Max([dtDateCreated]) As LatestDateCreated
    FROM
        [NovoCLIC].[dbo].[T_STATUS_CLIC]
    GROUP BY
        [iClic]
) TM ON T.iClic = TM.iClic AND T.dtDateCreated = TM.LatestDateCreated
WHERE
    T.iStatus = 2