SELECT TOP 3  a.CheckTime,a.RoomID,a.ClientID,b.ClientName,b.CardID
FROM  
(
SELECT TOP 1 CheckTime,RoomID,ClientID,State
FROM TblBusSalesNote 
WHERE (State='开单') AND RoomID='{3C9A8AE3-6A71-4FF7-AF64-841A3E928C29}'
ORDER BY CheckTime DESC) a   
JOIN TblSysClient b ON a.ClientID=b.ClientID 
LEFT JOIN 
(
SELECT RoomID ,TechID
FROM TblCliClock 
WHERE Batch=REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR, a.CheckTime,120),'-',''),':',''),' ','')
AND state<>'取消' ) c ON a.RoomID=c.RoomID 
LEFT JOIN TblSysTech d ON c.TechID=d.TechID  
错误:无法绑定由多个部分组成的标识符,a.CheckTime
请教这个查询应该怎么该写呢?一条语句搞定它。
我现在就没办法取得这个CheckTime,除非用两条sql语句,先查询到CheckTime的值。

解决方案 »

  1.   

    Batch=REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR, a.CheckTime,120),'-',''),':',''),' ','')红的这个地方有问题  查不到a
      

  2.   

    你left Join c 和d 干什么 查询的时候都没用到啊
      

  3.   

    SELECT TOP 3  a.CheckTime,a.RoomID,a.ClientID,b.ClientName,b.CardID
    FROM  
    (
        SELECT TOP 1 CheckTime,RoomID,ClientID,State
        FROM TblBusSalesNote 
        WHERE (State='开单') AND RoomID='{3C9A8AE3-6A71-4FF7-AF64-841A3E928C29}'
        ORDER BY CheckTime DESC) a   
    JOIN TblSysClient b ON a.ClientID=b.ClientID 
      

  4.   

    报错的 Batch=REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR, a.CheckTime,120),'-',''),':',''),' ','')
    这个没有用 你不是也写了吗