為行選擇創(chuàng)建一個腳本
問題提交于2005年12月15日
想象一下這個表:
prod_key item_key pack_key last_sale
LM001 1029 AD100 2004/12/05
LM870 1029 AD100 2005/09/20
PE789 1030 BC400 2003/07/12
PE312 1030 BC400 2004/08/07
我想要選出哪些在item_key 和pack_key相等的情況下,日期比較大的那一行。換句話說,我想要:
LM870 1029 AD100 2005/09/20
PE312 1030 BC400 2004/08/07
你能幫我寫出這個腳本嗎?
專家回答:
這個表有主鍵嗎?那樣的話查詢可能會容易些。不管怎么樣,我覺得你應(yīng)該按照下面這樣:
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
WHERE tablex.item_key = MaxDateTable.item_key
AND tablex.pack_key = MaxDateTable.pack_key
AND tablex.last_sale = MaxDateTable.last_sale
列出沒有記錄的數(shù)據(jù)庫表
問題提交于2006年5月16日
我創(chuàng)建了一個動態(tài)的SQL Server查詢來輸出表中行的數(shù)量。我的目標是列出在數(shù)據(jù)庫中沒有記錄的表。查詢?nèi)缦滤?
declare @strsql varchar(100)
declare @tablename varchar(50)
@tablename=’table123′@strsql=’select count(*) from ‘ + @tablename exec(@strsql)
我得到了輸出,但是我無法把這個值存儲到變量中以備查看。
我想要這樣查看:
/* @countvariable=0
print(@tablename)*/
還有其它的解決方法嗎?
專家回答:
你可以讓你的解決方案更加靈活一些,通過從sysobjects表中抓取表名:
declare @strsql varchar(256)
create table #emptytables (tablename varchar(128), table_rowcount int)select @strsql=’select distinct o.name as TableName, x.rowcnt as Table_RowCount
from sysobjects o
inner join sysindexes x
on o.id = x.id
where x.rowcnt = 0 and
o.type = ‘’U”’insert #emptytables (TableName, Table_rowcount) exec (@strsql)
select * from #emptytables
drop table #emptytables
問題提交于2005年12月15日
想象一下這個表:
prod_key item_key pack_key last_sale
LM001 1029 AD100 2004/12/05
LM870 1029 AD100 2005/09/20
PE789 1030 BC400 2003/07/12
PE312 1030 BC400 2004/08/07
我想要選出哪些在item_key 和pack_key相等的情況下,日期比較大的那一行。換句話說,我想要:
LM870 1029 AD100 2005/09/20
PE312 1030 BC400 2004/08/07
你能幫我寫出這個腳本嗎?
專家回答:
這個表有主鍵嗎?那樣的話查詢可能會容易些。不管怎么樣,我覺得你應(yīng)該按照下面這樣:
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
WHERE tablex.item_key = MaxDateTable.item_key
AND tablex.pack_key = MaxDateTable.pack_key
AND tablex.last_sale = MaxDateTable.last_sale
列出沒有記錄的數(shù)據(jù)庫表
問題提交于2006年5月16日
我創(chuàng)建了一個動態(tài)的SQL Server查詢來輸出表中行的數(shù)量。我的目標是列出在數(shù)據(jù)庫中沒有記錄的表。查詢?nèi)缦滤?
declare @strsql varchar(100)
declare @tablename varchar(50)
@tablename=’table123′@strsql=’select count(*) from ‘ + @tablename exec(@strsql)
我得到了輸出,但是我無法把這個值存儲到變量中以備查看。
我想要這樣查看:
/* @countvariable=0
print(@tablename)*/
還有其它的解決方法嗎?
專家回答:
你可以讓你的解決方案更加靈活一些,通過從sysobjects表中抓取表名:
declare @strsql varchar(256)
create table #emptytables (tablename varchar(128), table_rowcount int)select @strsql=’select distinct o.name as TableName, x.rowcnt as Table_RowCount
from sysobjects o
inner join sysindexes x
on o.id = x.id
where x.rowcnt = 0 and
o.type = ‘’U”’insert #emptytables (TableName, Table_rowcount) exec (@strsql)
select * from #emptytables
drop table #emptytables