如何写这个SQL语句(200分)

  • 主题发起人 主题发起人 liaotw
  • 开始时间 开始时间
L

liaotw

Unregistered / Unconfirmed
GUEST, unregistred user!
现在我有一个要求,存在表如下
Field1 Field2 Field3 Field4
aaaaa aaaaaa 1 1
aaaaa bbbbbb 1 2
aaaaa aaaaaa 2 2
bbbbb aaaaaa 1 2
bbbbb aaaaaa 2 1
bbbbb bbbbbb 3 3
……
如何知道如果按照Field1, Field2或者自定义的组合条件,查询其被Group By后存在有
多少条记录。
eg:
SELECT COUNT(DISTINCT Field1) FROM Table WHERE Field3<3
这条语句可以返回结果2,这表示如果按照Field1进行分组,有两种情况。
但是如果
SELECT COUNT(DISTINCT Field1, Field2) FROM Table WHERE Field3<3却是SQL 语句错误,
请问,应该如何构造此类SQL语句?
多谢!
 
select Count(*)
from
(SELECT Field1, Field2 FROM Table WHERE Field3<3) a
 
其目的就是想要统计:
SELECT Field1, Field2,…… FROM Table1
WHERE Field3 < 3
GROUP BY Field1, Field2,……有多少条记录,
我不想用TADODataSet.RecordCount来完成任务,所以有了上面的提问
 
To :完颜康
你的方法是错误的!
 
select sum(ncount)
from
(select field1,field2,count(*)as ncount from tablename group by field1,field2
where ...)
 
To:ugvanxk
你的方法也是行不通的
拜托,先在你的机器上实验一下吧!
 
SELECT COUNT(DISTINCT Field1, Field2) FROM Table WHERE Field3<3却是SQL 语句错误
count()里面只能有一个参数,所以会报错

利用这样的语句你想实现什么功能?或者说说你想看到什么结果
 
To : ZhaoMH
其目的就是想要统计:
SELECT Field1, Field2,…… FROM Table1
WHERE Field3 < 3
GROUP BY Field1, Field2,……有多少条记录,
我不想用TADODataSet.RecordCount来完成任务,所以有了上面的提问
 
select count(*) form tablename where field3<3
如果有field3的情况就应连 field3一起 group by
SELECT SUM(ncount) AS Expr1
FROM (SELECT stor_id, ord_num, qty, COUNT(*) AS ncount
FROM sales
WHERE qty < 10
GROUP BY stor_id, ord_num, qty) DERIVEDTBL
 
To:ugvanxk
我输入了你的语句,存在由语法错误,所以你的方法是不行的。
你最好在机器上实验一下,好吗?
 
你什么数据库啊????
SELECT COUNT(*)
FROM (SELECT DISTINCT no1, no2
FROM TempTable) a
sqlerver 下测试无误
 
To:ugvanxk
给你加了200分,虽然你的答案是错误的,但是比较接近正确的答案了
我已经有了正确的答案,在SQL SERVER 7的在线帮助里面有的
 
接受答案了.
 
我下面举的例子就是sqlserver下才运行出来的
 
后退
顶部