SELECT COUNT(1) FROM Customer WHERE 公司名 = t.公司名 AND 记录时间 > t.记录时间) = 1这是什么意思
SELECT 公司名,姓名 FROM Customer t WHERE (SELECT COUNT(1) FROM Customer WHERE 公司名 = t.公司名 AND 记录时间 > t.记录时间) = 1)--这个语句有问题,首先很明显括号不配对,2个左括号(,3个右括号)我想大概是最后面一个不要了啦 SELECT 公司名,姓名 FROM Customer t WHERE (SELECT COUNT(1) FROM Customer WHERE 公司名 = t.公司名 AND 记录时间 > t.记录时间) = 1--就是在表里面,同样的公司名,有且只有一笔记录时间大于该笔记录时间的纪录选出来create table #Customer (CID int, CNAM VARCHAR(20),DT DATETIME) INSERT INTO #Customer SELECT '001','Mabel','2005-06-07' union all SELECT '001','Jackey','2005-06-08' union all SELECT '002','Victornia','2005-05-01' union all SELECT '002','Emma','2005-06-07' union all SELECT '002','Sally','2005-06-11'select CID,CNAM from #Customer T1 where (select count(1) from #Customer T2 where T2.CID = T1.CID and T2.DT > T1.DT) = 1
SELECT 公司名,姓名 FROM Customer t WHERE (SELECT COUNT(1) FROM Customer WHERE 公司名 = t.公司名 AND 记录时间 > t.记录时间) = 1)===>最后一个括号要去掉. MorningTea(一勺抹茶) 说得对,还真细心.
整个查询语句的意思是:查所有公司名有重复两条记录的时间大的一条记录?那如果有多条记录重复的话,应该要这样写: ================================================================= create table #Customer (CID int, CNAM VARCHAR(20),DT DATETIME) INSERT INTO #Customer SELECT '001','Mabel','2005-06-07' union all SELECT '001','Jackey','2005-06-08' union all SELECT '001','Jackey1','2005-06-09' union all SELECT '002','Victornia','2005-05-01' union all SELECT '002','Emma','2005-06-07' union all SELECT '002','Sally','2005-06-11'select CID,CNAM,dt from #Customer T1 where not exists(select 1 from #Customer T2 where T2.CID = T1.CID and T2.DT > T1.DT)
#Customer T1 #Customer T2这两个用户表没有人建立怎么就用了,我看了好长时间也没有看懂,希望能够解决,谢谢! select 1这个语句是什么意思啊 ,希望高手指点!select 1 from #Customer T2 where T2.CID = T1.CID and T2.DT > T1.DT) 这句是什么意思啊
<======>select count(*)
两个是等价的
统计记录数
SELECT 公司名,姓名 FROM Customer t WHERE (SELECT COUNT(1) FROM Customer WHERE 公司名 = t.公司名 AND 记录时间 > t.记录时间) = 1--就是在表里面,同样的公司名,有且只有一笔记录时间大于该笔记录时间的纪录选出来create table #Customer (CID int, CNAM VARCHAR(20),DT DATETIME)
INSERT INTO #Customer
SELECT '001','Mabel','2005-06-07' union all
SELECT '001','Jackey','2005-06-08' union all
SELECT '002','Victornia','2005-05-01' union all
SELECT '002','Emma','2005-06-07' union all
SELECT '002','Sally','2005-06-11'select CID,CNAM from #Customer T1
where (select count(1) from #Customer T2 where T2.CID = T1.CID
and T2.DT > T1.DT) = 1
=================================================================
create table #Customer (CID int, CNAM VARCHAR(20),DT DATETIME)
INSERT INTO #Customer
SELECT '001','Mabel','2005-06-07' union all
SELECT '001','Jackey','2005-06-08' union all
SELECT '001','Jackey1','2005-06-09' union all
SELECT '002','Victornia','2005-05-01' union all
SELECT '002','Emma','2005-06-07' union all
SELECT '002','Sally','2005-06-11'select CID,CNAM,dt from #Customer T1
where not exists(select 1 from #Customer T2 where T2.CID = T1.CID and T2.DT > T1.DT)
#Customer T2这两个用户表没有人建立怎么就用了,我看了好长时间也没有看懂,希望能够解决,谢谢!
select 1这个语句是什么意思啊 ,希望高手指点!select 1 from #Customer T2 where T2.CID = T1.CID and T2.DT > T1.DT)
这句是什么意思啊
#Customer T1
#Customer T2这两个用户表没有人建立怎么就用了,我看了好长时间也没有看懂,希望能够解决,谢谢!
--这是一个临时表,整个session完了就不存在了,这是我们回答问题为了方便,楼主是自己实际的表select 1这个语句是什么意思啊 ,
希望高手指点!select 1 from #Customer T2 where T2.CID = T1.CID and T2.DT > T1.DT)
这句是什么意思啊--where T2.CID = T1.CID and T2.DT > T1.DT这个条件成立就是select 1(常量),否则就不成功!你自己执行则知道什么意思
回复人: zcbdcyj(知足知不足) ( ) 信誉:100 2005-09-19 09:01:00 得分: 0
count(*)与count(1)的区别在何处呀?我 也是 开始学习SLQ2000的,这两个语句应该不同,请高手指点