SQLServer开发问题前十名[5]

SQLServer开发问题前十名[5],第1张

SQLServer开发问题前十名[5],第2张

为行选择创建脚本。

问题提交于2005年12月15日。

想象一下这张表:
prod _ keyitem _ key pack _ key last _ sale
lm 001 1029 ad 100 2004/12/05
lm 870 1029 ad 100 2005/09/20
PE 788。

当item_key和pack_key相等时,我希望选择日期较大的行。换句话说,我要:
LM 870 1029 AD 100 2005/09/20
PE 312 1030 BC 400 2004/08/07

你能帮我写这个剧本吗?

专家回答:

这个表有主键吗?在这种情况下,查询可能会更容易。反正我觉得你应该遵循以下:
select prod _ key,item _ key,pack _ key,last _ sale
FROM(select item _ key,pack _ key,MAX(last _ sale)AS last _ sale FROM tablex GROUP BY item _ key,pack_key) AS MaxDateTable
其中tablex . item _ key = MAX date table . item _ key
AND tablex . pack _ key = MAX date table . pack _ key
AND tablex . last _ sale

列出没有记录的数据库表。

问题提交于2006年5月16日。

我创建了一个动态SQL Server查询来输出表中的行数。我的目标是列出数据库中没有记录的表。查询如下:
declare @ strsqlvarchar(100)
declare @ tablename varchar(50)
@ tablename = ' table 123 ' @ strsql = ' select count(*)from '+@ tablename exec(@ strsql

我得到了输出,但是我不能将这个值存储在一个变量中以备将来引用。

我想这样检查一下:
/* @ count variable = 0
print(@ tablename)*/

还有其他解决方法吗?

专家回答:

通过从sysobjects表中获取表名,可以使您的解决方案更加灵活:
declare @ strsqlvarchar(256)
create Table # empty tables(TableName varchar(128),Table _ RowCount int)select @ strsql = ' select distinct o . name as TableName,x . rowcont as Table _ RowCount
from sysobjects o
inner join sysindexes x
on o . id = x . id

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » SQLServer开发问题前十名[5]

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情