日期:2014-05-18  浏览次数:20899 次

急急急急急急急急急急急急急急急急!!!关于查询下载量的问题
我现在有两个表,一个是上传表里面记录的是上传的文档,另一个表是下载记录表主要记录的是下载的明细,现在我想用一句话查询出所有上传的文档的下载量
SQL code

上传表
id    名称    上传路径    上传者    文档类型
22    WBS模板.pdf    Manage\file\2012-05-15\17-40-43.pdf    20080962    pdf
23    5月通讯录.pdf    Manage\file\2012-05-16\08-36-10.pdf    20080962    pdf
24    香水.pdf    Manage\file\2012-05-16\08-47-10.pdf    20080962    pdf
下载表
id    名称    时间    下载者    
1    WBS模板.pdf    2012-05-18    20080790
2    WBS模板.pdf    2012-05-18    20080962



------解决方案--------------------
SQL code
select a.名称, 下载次数 = count(*) from 上传表 a
left join 下载表 b on a.名称 = b.名称 -- 这个关联条件lz自己斟酌一下
group by a.名称

------解决方案--------------------
SQL code
select a.*, 下载次数 = b.fc
from 上传表 a
left join (select id,count(*) fc from 下载表 group by id) b on a.id = b.id
order by a.名称

------解决方案--------------------
SQL code
if object_id('[上传表]') is not null drop table [上传表]
go
create table [上传表] (id int,名称 nvarchar(18),上传路径 nvarchar(70),上传者 int,文档类型 nvarchar(6))
insert into [上传表]
select 22,'WBS模板.pdf','Manage\file\2012-05-15\17-40-43.pdf',20080962,'pdf' union all
select 23,'5月通讯录.pdf','Manage\file\2012-05-16\08-36-10.pdf',20080962,'pdf' union all
select 24,'香水.pdf','Manage\file\2012-05-16\08-47-10.pdf',20080962,'pdf'

if object_id('[下载表]') is not null drop table [下载表]
go
create table [下载表] (id int,名称 nvarchar(18),时间 datetime,下载者 int)
insert into [下载表]
select 1,'WBS模板.pdf','2012-05-18',20080790 union all
select 2,'WBS模板.pdf','2012-05-18',20080962

select * from [上传表]
select * from [下载表]


SELECT A.id,A.名称,A.上传路径,A.上传者,A.文档类型,COUNT(B.id) AS '下载次数'
FROM [上传表] A
LEFT JOIN [下载表] B ON A.名称 = B.名称
GROUP by A.id,A.名称,A.上传路径,A.上传者,A.文档类型


/*
id          名称                 上传路径                                                                   上传者         文档类型   下载次数
----------- ------------------ ---------------------------------- ----------- ------ -----------
22          WBS模板.pdf          Manage\file\2012-05-15\17-40-43.pdf                                    20080962    pdf    2
23          5月通讯录.pdf          Manage\file\2012-05-16\08-36-10.pdf                                    20080962    pdf    0
24          香水.pdf             Manage\file\2012-05-16\08-47-10.pdf                                    20080962    pdf    0


(3 row(s) affected)

*/