熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

SQL Server開發問題前十名[5]

2013-11-15 14:52:15  來源: SQL Server 

  為行選擇創建一個腳本

  問題提交於

  想象一下這個表:
  prod_key item_key pack_key last_sale
  LM AD //
  LM AD //
  PE BC //
  PE BC //

  我想要選出哪些在item_key 和pack_key相等的情況下日期比較大的那一行換句話說我想要:
  LM AD //
  PE BC //

  你能幫我寫出這個腳本嗎?

  專家回答:

  這個表有主鍵嗎?那樣的話查詢可能會容易些不管怎麼樣我覺得你應該按照下面這樣:
  SELECT prod_keyitem_keypack_keylast_sale
  FROM (SELECT item_keypack_keyMAX(last_sale) AS last_sale FROM tablex   GROUP BY item_keypack_key) AS MaxDateTable
  WHERE tablexitem_key = MaxDateTableitem_key
  AND tablexpack_key = MaxDateTablepack_key
  AND tablexlast_sale = MaxDateTablelast_sale

  列出沒有記錄的數據庫表

  問題提交於

  我創建了一個動態的SQL Server查詢來輸出表中行的數量我的目標是列出在數據庫中沒有記錄的表查詢如下所示:
  declare @strsql varchar()
  declare @tablename varchar()
  @tablename=table′@strsql=select count(*) from + @tablename   exec(@strsql)

  我得到了輸出但是我無法把這個值存儲到變量中以備查看

  我想要這樣查看:
  /* @countvariable=
  print(@tablename)*/
    
  還有其它的解決方法嗎?

  專家回答:

  你可以讓你的解決方案更加靈活一些通過從sysobjects表中抓取表名:
  declare @strsql varchar()
  create table #emptytables (tablename varchar() table_rowcount int)select @strsql=select distinct oname as TableName xrowcnt as   Table_RowCount
  from sysobjects o
  inner join sysindexes x
  on oid = xid
  where xrowcnt = and
  otype = Uinsert #emptytables (TableName Table_rowcount) exec (@strsql)
  select * from #emptytables
  drop table #emptytables

[]  []  []  []  []  


From:http://tw.wingwit.com/Article/program/SQLServer/201311/22464.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.