开发者

SQL Select Query With Count And Where Statement

I always seem to trip myself up during these types of SQL Statements. Here is what I'm attempting to accomplish.

My Example Table

Name    Date    Type
Bob     9/28/11 1
Bob     9/27/11 1
Bob     9/28/11 2
Debra   9/28/11 1

I'm trying to write a SQL Statement that would give me all the names, their total count occured, and then a Date Filter. I'll write a rought statement w开发者_运维技巧ith completely wrong syntax, but I think it'll convey what I'm attempting to do...I think.

SELECT Name, Count(*) As Total
FROM Table
GROUP BY Name, Total
WHERE Date = Today (I'm aware you can't do a WHERE in a GROUP BY) AND Type = 1

Essentially, I would like to get back a set of data that would show the Name, how many instances of Type 1 for today.

I don't think I'm searching for the proper question to actually be able to effectively research this on my own as well, probably because I'm wording it improperly.

Any help would be appreciated!


Your WHERE was in the wrong place:

SELECT Name, Count(*) As Total
FROM Table
WHERE Date = Today AND Type = 1
GROUP BY Name


You just need to move your WHERE after your FROM.

SELECT Name, Count(*) As Total
FROM Table
WHERE [Date] = CAST(getdate() as Date) -- or 'Jan 1 1990'
AND [Type] = 1
GROUP BY Name 


WHERE comes before GROUP

SELECT Name, Count(*) As Total
FROM Table
WHERE Date >= @Today --assuming your date passed in has no time
AND Date < DATEADD(d,1,@Today) 
AND Type = 1
GROUP BY Name, Total

example you can run

SELECT LEFT(name,1) FROM sysobjects
WHERE name < 'p'
GROUP BY LEFT(name,1) 
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜