2016-09-11 46 views
0

工作,我有這個疑問的錯誤,說:GROUP BY不上票

消息8120,級別16,狀態1,行3
列 'CrmDesk.Ticket.Id' 是無效的在選擇列表中,因爲它不包含在聚合函數或GROUP BY子句中。

這是我的查詢:

Select * 
from CrmDesk.Ticket 
where TicketCode in (select DISTINCT(TicketCode) 
        from CrmDesk.Ticket 
        where ReciverUserId ='3A4AA2F4-75C8-4725-8F16-81F34158258B') 
group by TicketCode 

該查詢具有相同的錯誤

select * 
from CrmDesk.Ticket 
group by TicketCode 

這是什麼問題,我該如何解決?

+4

閱讀關於集團By'如何'工作。或者改寫說你想要達到什麼效果 –

+0

只有group by子句中的列纔可以在沒有聚合函數的select子句中。如果您具有多個ID值的相同故障單代碼,您希望返回哪個ID值? –

+0

它並不重要什麼編碼代碼取回所有相同的票代碼記錄具有相同的主題和評論領域實際上,我需要主題,評論和票代碼 –

回答

0

您應該在選擇列表中的group by子句中包含列。

如果你想檢查與相同主題和註釋同一張票,使用下面的腳本..

Select * 
    From crmdesk.ticket t 
    Join (select t1.ticketcode,t1.subject,t1.comment 
       From crmdesk.ticket t1 
       Group by t1.ticketcode,t1.subject,t1.comment 
       Having count(t1.id) >1) t1-- assuming you have an ID column, if not replace with ticketcode or any other relevant column 
      On t.ticketcode=t1.ticketcode 
        And t.subject=t1.subject 
        And t.comment=t1.comment 
0

爲什麼你甚至不需要在這個SELECT語句子查詢和GROUP BY條款?
對於剛剛select語句,你可以使用下面的查詢:

select * 
from CrmDesk.Ticket 
where TicketCode 
where ReciverUserId ='3A4AA2F4-75C8-4725-8F16-81F34158258B' 
0

你必須確定你爲什麼需要通過ticketcode分組?

如果你想要得到的只是不同的票碼值:如果你想算什麼

Select TicketCode 
from CrmDesk.Ticket 
where ReciverUserId ='3A4AA2F4-75C8-4725-8F16-81F34158258B' 
group by TicketCode 

Select TicketCode, COUNT(ID) 
from CrmDesk.Ticket 
where ReciverUserId ='3A4AA2F4-75C8-4725-8F16-81F34158258B' 
group by TicketCode 

如果你想只是不同的值(不重複):

Select distinct Subject, Comment, TicketCode 
from CrmDesk.Ticket 
where ReciverUserId ='3A4AA2F4-75C8-4725-8F16-81F34158258B' 

或者:

Select Subject, Comment, TicketCode 
from CrmDesk.Ticket 
where ReciverUserId ='3A4AA2F4-75C8-4725-8F16-81F34158258B' 
group by Subject, Comment, TicketCode 
+0

我想通過「TicketCode」得到記錄組。 事實上,我想要一個記錄(它不重要什麼記錄)其中ReciverUserId ='3A4AA2F4-75C8-4725-8F16-81F34158258B' –

+0

請,顯示你現在擁有什麼,以及你想得到什麼。數據樣本。Group by將按您確定的列進行分組,但其他列必須處於聚合函數,如max,min,avg。 – gofr1

+0

也許你想爲每張門票獲得前1名? – gofr1

0

當您在查詢中使用group by,您必須使用aggreagte功能,如一個:summinmaxcount,...