2013-06-04 128 views
0

我有一個問題,我有是基於日期&時間創建的表的表,因爲我沒有寫SP創建該表。無論如何,每次創建時都需要對這些表進行計數。SQL創建基於單元格值

我迄今所做的是創建具有這些名稱的表,並增加了一個計數字段。 表看起來是這樣的,被稱爲SP.DBO.AUSEMAIL

SourceTable           Count 
SP.DBO.VIP_BPAU_00030_20130531_092027 
SP.DBO.ADV_BPAU_00030_20130531_092027 

現在基本上我需要創建一個查詢,這將使我SP.DBO.VIP_BPAU_00030_20130531_092027和SP.DBO.ADV_BPAU_00030_20130531_092027的計數和填充以上表。

正如我不知道是什麼表將每天都來,而且我對完全自動化這個我不能只給每個文件的計數工作。

我已經試過這樣的事情和我毫無進展。

select count(*) 
from top 1 (select sourcetable 
from SP.DBO.AUSEMAIL 
where source_table like 'SP.DBO.VIP_BPAU%') 

任何想法都會非常有幫助。

+3

「我有一個問題,即我有一個基於日期和時間創建的表」 - 這是很少一個好的設計....這是一個日期列是什麼! –

回答

0

要在ausemail

UPDATE a 
    SET a.count = i.rowcnt 
    FROM sysindexes AS i INNER JOIN sysobjects AS o 
    ON i.id = o.id JOIN ausemail a 
    ON o.name = a.source_table 

更新count列。如果你確切地知道該模式,你可以做這樣的事情

SELECT o.name source_table, 
     i.rowcnt count 
    FROM sysindexes AS i INNER JOIN sysobjects AS o 
    ON i.id = o.id 
WHERE o.name LIKE '___!_BPAU!_%' ESCAPE '!' -- < adjust the pattern as needed 

輸出示例:

|     SOURCE_TABLE | COUNT | 
------------------------------------------ 
| VIP_BPAU_00030_20130531_092027 |  4 | 
| ADV_BPAU_00030_20130531_092027 |  2 | 

這裏SQLFiddle演示。

+0

工作的偉大與圖案非常感謝 – user2446846

+0

@ user2446846我很高興它幫助:)如果這是你要找的,請考慮到** [接受](http://meta.stackexchange.com/questions/5234 /如何接受答案)**答案。 – peterm