SQL Server 2000:需要从当前查询中的先前记录返回记录ID

时间:2016-02-03 16:26:35

标签: sql sql-server subquery sql-server-2000

我在帮助台工作,正在对PC维修票进行一些分析。

我需要从我们的通话记录系统转储数据,该系统返回最近由其他团队修复的计算机上的问题的故障单的历史记录。我们只是试图改善部署机器上的质量保证,这些数据将有所帮助。

我有分析门票的查询,但我想要返回最后一次PC维修案例的票号。

我目前的查询如下:

SELECT 
    CallLog.CallID, 
    CallLog.CustID, 
    Subset.Rep_num, 
    Subset.FirstName, 
    Subset.LastName, 
    CallLog.OpndetailCat,
    CallLog.Tracker_Full, 
    CallLog.RecvdDate,
FROM 
    heatPrd.dbo.CallLog CallLog, 
    heatPrd.dbo.Subset Subset
WHERE 
    CallLog.CallID = Subset.CallID AND 
    CallLog.RecvdDate>='2015-10-01' AND 
    CallLog.OpnAreaCat='back from repair'
ORDER BY 
    CallLog.CallID DESC

返回

CallID  CustID  Rep_num FirstName   LastName    OpndetailCat        Tracker_Full
2182375 1234            Sarah       Doe         Missing Email Folde 
2181831 1235            JENNIFER    Doe         ZOTHER  
2180815 1236    123     Jason       Smith       ZOTHER  
2180790 1237    124     DARCY       Doe         Wrong Proxy Config  
2180787 1239    125     Jason       Smith       ZOTHER  

我想在查询中添加一个列,该列将返回

的效果
select max(callid) 
from calllog 
where calltype = 'in_for_service_pc' and custid = '1234'

where calltype = 'in_for_service_pc'位于CallLog表格上,custID会从查询结果中提取。

这是很多信息,所以我希望我的要求是明确的。

免责声明:数据驻留在SQL Server 2000中,因此某些较新的命令可能无效。

1 个答案:

答案 0 :(得分:0)

这样的事情应该非常接近。

SELECT 
    cl.CallID, 
    cl.CustID, 
    s.Rep_num, 
    s.FirstName, 
    s.LastName, 
    cl.OpndetailCat,
    cl.Tracker_Full, 
    cl.RecvdDate,
    x.MaxCallID
FROM heatPrd.dbo.CallLog cl 
JOIN heatPrd.dbo.Subset s ON cl.CallID = s.CallID
left join 
(
    select max(cl2.callid) as MaxCallID
        , cl2.custid 
    from calllog cl2
    where cl2.calltype = 'in_for_service_pc' 
    group by cl2.custid
) x on x.custid = cl.custid
WHERE cl.RecvdDate >= '2015-10-01' AND 
    cl.OpnAreaCat = 'back from repair'
ORDER BY cl.CallID DESC