2013-01-11 25 views
3

我有一個包含代理的會話表,會話的開始時間以及他們幫助了多少人。我想查詢每個代理/日期組合的總數,合併當天的所有會話。例如,我有:不同用戶/日期的SQL查詢(附加列)

Agent 1 - 1/8/13 11:30am - 8 
Agent 2 - 1/8/13 11:32am - 9 
Agent 1 - 1/8/13 12:45pm - 10 
Agent 2 - 1/9/13 10:20am - 8 
Agent 3 - 1/9/13 11:45am - 7 

而我想看到的是:

1/8/13 - Agent 1 - 18 
1/8/13 - Agent 2 - 9 
1/9/13 - Agent 2 - 8 
1/9/13 - Agent 3 - 7 

我試過了:

SELECT DISTINCT CONVERT(CHAR(10), StartTime, 101) as 'Day', 
     Agent, 
     Helped 
FROM Sessions 

但我現在明白了,DISTINCT是怎麼回事爲所有選中的列返回唯一的結果,因此我只會看到原始數據,而不是按天結合。任何幫助,將不勝感激,謝謝!

+0

劑2也許17 u需要或9 ?? –

回答

3

你在這裏想要的是aggregate SUM()Agent和日期分組。

SELECT CONVERT(CHAR(10), StartTime, 101) as 'Day', 
     Agent, 
     SUM(Helped) AS Helped 
FROM Sessions 
GROUP BY CONVERT(CHAR(10), StartTime, 101), 
     Agent 

我不記得,如果SQL Server將允許您使用別名DayGROUP BY。如果是這樣,你可以做

SELECT CONVERT(CHAR(10), StartTime, 101) as 'Day', 
     Agent, 
     SUM(Helped) AS Helped 
FROM Sessions 
GROUP BY Day, Agent, 
+1

不,你不能在'group by'中使用Day別名(但是你可以在'order by'中) –

+0

@PaulWilliams謝謝 - 今年MySQL太多了,而且沒有太多的MSSQL。 –

-1

我相信你會想「按組」命令探索 - 是這樣的:

SELECT CONVERT(CHAR(10), StartTime, 101) as 'Day', 
    Agent, 
    Helped 
FROM Sessions GROUP BY (Agent) order by Agent asc 
+0

你還需要按'日'分組(也許是用來規定時間的公式)。 – JeffO

2

您需要GROUP BY的開始時間和代理和SUM向上的幫助下:

declare @Sessions table 
(
    StartTime datetime, 
    Agent varchar(50), 
    Helped int 
) 

insert into @Sessions (Agent, StartTime, Helped) 
select 'Agent 1', '1/8/13 11:30am', 8 
union select 'Agent 2', '1/8/13 11:32am', 9 
union select 'Agent 1', '1/8/13 12:45pm', 10 
union select 'Agent 2', '1/9/13 10:20am', 8 
union select 'Agent 3', '1/9/13 11:45am', 7 

select 
    convert(varchar(10), StartTime, 101) as [Day], 
    Agent, 
    sum(Helped) 
from 
    @sessions 
group by 
    convert(varchar(10), StartTime, 101), 
    Agent 
0

我在想,如果它太簡單......但好像你需要的答案..

查詢:

SELECT date as times, 
     id, 
     sum(items) 
FROM agents 
group by id, date 
; 

結果:

|  TIMES |  ID | COLUMN_2 | 
----------------------------------- 
| 2013-01-08 | Agent 1 |  18 | 
| 2013-01-08 | Agent 2 |  9 | 
| 2013-01-09 | Agent 2 |  8 | 
| 2013-01-09 | Agent 3 |  7 |