2014-10-11 38 views
0

我有一個SQL查詢在執行時給出了一個錯誤SQL查詢具有多個選擇的排序錯誤

文本,ntext和圖像數據類型不能比較或排序,當使用IS NULL或LIKE操作除。

查詢是

SELECT Count(*)        AS present, 
     (SELECT Count(counted) 
     FROM (SELECT attdate AS counted 
       FROM gtab85 
       WHERE attdate >= '01/10/2014' 
         AND attdate <= '11/10/2014' 
       GROUP BY attdate) AS derived) AS working, 
     gtab86.staffname 
FROM gtab85 AS A 
     INNER JOIN gtab86 
       ON gtab86.staffid = A.userid 
WHERE attdate >= '01/10/2014' 
     AND attdate <= '11/10/2014' 
GROUP BY userid, 
      staffname 

當我執行以下部分

SELECT Count(*)        AS present, 
     (SELECT Count(counted) 
     FROM (SELECT attdate AS counted 
       FROM gtab85 
       WHERE attdate >= '01/10/2014' 
         AND attdate <= '11/10/2014' 
       GROUP BY attdate) AS derived) AS working 

我以未排序的方式得到結果。請幫助我解決此問題。

+0

顯然'staffname'是一個文本或ntext列。如果您希望它在group by子句中使用,則可以將其轉換爲varchar。比較... – 2014-10-11 05:27:37

回答

0

嘗試將文本轉換爲VARCHAR:

select count(*) as present, 
     (select count(counted) 
     from (select attdate as counted 
       from gtab85 
       where attdate >='01/10/2014' and attdate <='11/10/2014' group by attdate 
      ) as derived 
     ) as working, 
     convert(varchar(255),gtab86.staffname) 
from gtab85 as A 
inner join gtab86 
on gtab86.staffid=A.userid 
where attdate >='01/10/2014' and attdate <='11/10/2014' 
group by userid,convert(varchar(255),gtab86.staffname) 
+0

...確實有效.... – a4akhil 2014-10-11 05:40:08