求一SQL语句。越快越好!
现有两表一视图
表Software列名如下:
lngComputerID(唯一索引字段)
computer_name
Name
Uninstall_executable
Version_major
Version_minor
Manufacturer
Install_directory
URL_info_about
Version
Registered_to
Registration_code
表network_protocols_gateways列名如下
lngComputerID(关联)
computer_name
Gateway
视图 view_ComputerInfo列名如下:
lngComputerID(关联)
ComputerName
CreateDate
DomainName
OrgCode
OrgName
原SQl语句如下:
select sf.lngcomputerid as 'Lngcomputerid',
sf.computer_name as '计算机名',
CreateDate as '采集日期',
name as '程序名称',
uninstall_executable as 'UninstallExecutable',
version_major as 'VersionMajor',
version_minor as 'VersionMinor',
manufacturer as 'Manufacturer',
install_directory as '安装目录',
url_info_about as 'UrlInfoAbout',
version as '版本',
registered_to as 'RegisteredTo',
registration_code as 'RegistrationCode',
net.gateway as '网关',
vc.DomainName as '登录名',
vc.OrgName as '组织名称'
From resourcemanage.dbo.software as sf
left join resourcemanage.dbo.network_protocols_gateways as net
on sf.lngcomputerid=net.lngcomputerid
left join view_ComputerInfo as vc
on sf.lngcomputerid=vc.lngcomputerid
Where net.gateway not like '% %'
现在问题是视图中CreateDate的日期 有很多个
比如20050202在software表中关联出很多不同的name,(20050202这一天搜索出每一台机器上安装的所有程序名称)
而20050204在software表中也关联出很多不同的name,(20050204这一天搜索出每一台机器上安装的所有程序名称)
现在想把每一台机器 computer_name 按最近日期(其它日期不要)一次的搜索结果呈现出来?
应该如何修改SQL语句?
问题点数:50、回复次数:6Top
1 楼pretencingfreedom(不能把握感情的神)回复于 2005-02-17 11:28:21 得分 10
select sf.lngcomputerid as 'Lngcomputerid',
sf.computer_name as '计算机名',
CreateDate as '采集日期',
name as '程序名称',
uninstall_executable as 'UninstallExecutable',
version_major as 'VersionMajor',
version_minor as 'VersionMinor',
manufacturer as 'Manufacturer',
install_directory as '安装目录',
url_info_about as 'UrlInfoAbout',
version as '版本',
registered_to as 'RegisteredTo',
registration_code as 'RegistrationCode',
net.gateway as '网关',
vc.DomainName as '登录名',
vc.OrgName as '组织名称'
From resourcemanage.dbo.software as sf
left join resourcemanage.dbo.network_protocols_gateways as net
on sf.lngcomputerid=net.lngcomputerid
left join
(select lngComputerID,ComputerName,max(CreateDate),DomainName,OrgCode,OrgName from view_ComputerInfo group by lngComputerID,ComputerName,DomainName,OrgCode,OrgName
)as vc
on sf.lngcomputerid=vc.lngcomputerid
Where net.gateway not like '% %'Top
2 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2005-02-17 11:40:02 得分 15
select
sf.sputerid as 'Lngcomputerid' ,
sf.computer_name as '计算机名' ,
MAX(vc.CreateDate) as '采集日期' ,
sf.name as '程序名称' ,
sf.uninstall_executable as 'UninstallExecutable',
sf.version_major as 'VersionMajor' ,
sf.version_minor as 'VersionMinor' ,
sf.manufacturer as 'Manufacturer' ,
sf.install_directory as '安装目录' ,
sf.url_info_about as 'UrlInfoAbout' ,
sf.version as '版本' ,
sf.registered_to as 'RegisteredTo' ,
sf.registration_code as 'RegistrationCode' ,
net.gateway as '网关' ,
vc.DomainName as '登录名' ,
vc.OrgName as '组织名称'
From
resourcemanage.dbo.software as sf
left join
resourcemanage.dbo.network_protocols_gateways as net
on
sf.lngcomputerid = net.lngcomputerid
left join
view_ComputerInfo as vc
on
sf.lngcomputerid = vc.lngcomputerid
Where
net.gateway not like '% %'
GROUP BY
sf.sputerid
sf.computer_name ,
sf.name ,
sf.uninstall_executable ,
sf.version_major ,
sf.version_minor ,
sf.manufacturer ,
sf.install_directory ,
sf.url_info_about ,
sf.version ,
sf.registered_to ,
sf.registration_code ,
net.gateway ,
vc.DomainName ,
vc.OrgNameTop
3 楼sunrisehy2003(黎明)回复于 2005-02-17 11:41:51 得分 10
select sf.lngcomputerid as 'Lngcomputerid',
sf.computer_name as '计算机名',
max(CreateDate) as '采集日期',
name as '程序名称',
uninstall_executable as 'UninstallExecutable',
version_major as 'VersionMajor',
version_minor as 'VersionMinor',
manufacturer as 'Manufacturer',
install_directory as '安装目录',
url_info_about as 'UrlInfoAbout',
version as '版本',
registered_to as 'RegisteredTo',
registration_code as 'RegistrationCode',
net.gateway as '网关',
vc.DomainName as '登录名',
vc.OrgName as '组织名称'
From resourcemanage.dbo.software as sf
left join resourcemanage.dbo.network_protocols_gateways as net
on sf.lngcomputerid=net.lngcomputerid
left join view_ComputerInfo as vc
on sf.lngcomputerid=vc.lngcomputerid
Where net.gateway not like '% %'Top
4 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2005-02-17 11:42:17 得分 15
select
sf.sputerid as 'Lngcomputerid' ,
sf.computer_name as '计算机名' ,
MAX(vc.CreateDate) as '采集日期' ,
sf.name as '程序名称' ,
sf.uninstall_executable as 'UninstallExecutable',
sf.version_major as 'VersionMajor' ,
sf.version_minor as 'VersionMinor' ,
sf.manufacturer as 'Manufacturer' ,
sf.install_directory as '安装目录' ,
sf.url_info_about as 'UrlInfoAbout' ,
sf.version as '版本' ,
sf.registered_to as 'RegisteredTo' ,
sf.registration_code as 'RegistrationCode' ,
net.gateway as '网关' ,
vc.DomainName as '登录名' ,
vc.OrgName as '组织名称'
From
resourcemanage.dbo.software as sf
left join
resourcemanage.dbo.network_protocols_gateways as net
on
sf.lngcomputerid = net.lngcomputerid
left join
view_ComputerInfo as vc
on
sf.lngcomputerid = vc.lngcomputerid
Where
charindex(' ',net.gateway) = 0
GROUP BY
sf.sputerid ,
sf.computer_name ,
sf.name ,
sf.uninstall_executable ,
sf.version_major ,
sf.version_minor ,
sf.manufacturer ,
sf.install_directory ,
sf.url_info_about ,
sf.version ,
sf.registered_to ,
sf.registration_code ,
net.gateway ,
vc.DomainName ,
vc.OrgNameTop
5 楼downmoon(邀月)回复于 2005-02-17 12:55:13 得分 0
按 pretencingfreedom(不能把握感情的神)
和
libin_ftsafe(子陌红尘)
的方法,均得结果如下
46 GQR-HGH 2005-02-02 16:53:54.000 Windows Media Player Hotfix [ Q828026 ???]
46 GQR-HGH 2005-02-02 16:53:54.000 Windows Messenger 5.0
46 GQR-HGH 2005-02-02 16:53:54.000 WinRAR archiver
46 GQR-HGH 2005-02-02 16:53:54.000 Windows 2000 - KB841872
…………………………………………………………………………………………………
64 GQR-HGH 2006-02-02 16:53:54.000 Microsoft Visio Professional 2002 [CHN]
64 GQR-HGH 2006-02-02 16:53:54.000 MSN Messenger 5.5
64 GQR-HGH 2006-02-02 16:53:54.000 FlashGet ads support
64 GQR-HGH 2006-02-02 16:53:54.000 Intel(R) Extreme Graphics Driver
64 GQR-HGH 2006-02-02 16:53:54.000 LiveUpdate 1.6 (Symantec Corporation)
64 GQR-HGH 2006-02-02 16:53:54.000 Autodesk Express Viewer
64 GQR-HGH 2006-02-02 16:53:54.000 C-Dilla Licence Management System
……………………………………………………………………………………
而我想要的是只有下面只有 2006-02-02 16:53:54.000 这个日期(最新)的所有数据!!??Top
6 楼downmoon(邀月)回复于 2005-02-17 13:47:24 得分 0
已解决!
最终语句如下:
select
max(sf.Lngcomputerid) as 'Lngcomputerid' ,
-- sf.Lngcomputerid as 'Lngcomputerid' ,
sf.computer_name as '计算机名' ,
MAX(vc.CreateDate) as '采集日期' ,
sf.name as '程序名称' ,
sf.uninstall_executable as 'UninstallExecutable',
sf.version_major as 'VersionMajor' ,
sf.version_minor as 'VersionMinor' ,
sf.manufacturer as 'Manufacturer' ,
sf.install_directory as '安装目录' ,
sf.url_info_about as 'UrlInfoAbout' ,
sf.version as '版本' ,
sf.registered_to as 'RegisteredTo' ,
sf.registration_code as 'RegistrationCode' ,
net.gateway as '网关' ,
vc.DomainName as '登录名' ,
vc.OrgName as '组织名称'
From
resourcemanage.dbo.software as sf
left join
resourcemanage.dbo.network_protocols_gateways as net
on
sf.lngcomputerid = net.lngcomputerid
left join
view_ComputerInfo as vc
on
sf.lngcomputerid = vc.lngcomputerid
Where
charindex(' ',net.gateway) = 0
and sf.computer_name = 'GQR-HGH'
GROUP BY
-- sf.Lngcomputerid ,
sf.computer_name ,
sf.name ,
sf.uninstall_executable ,
sf.version_major ,
sf.version_minor ,
sf.manufacturer ,
sf.install_directory ,
sf.url_info_about ,
sf.version ,
sf.registered_to ,
sf.registration_code ,
net.gateway ,
vc.DomainName ,
vc.OrgName
Top




