2015-05-13 34 views
0

如何構建下面的查詢以同時運行多個數據庫。如何優化查詢 - 使用視圖提取計數信息

要計算數據庫中活動用戶的總數,我當前必須一次運行查詢一個數據庫。

是否有某種可以動態運行的foreach函數?

with data as 
(select p.CoNum CoNum, p.LastName, p.Name,co.name Company, liGender.Description as Gender, liEth.Description as EthnicGroup,Isnull(Limed.Description,'Not Specified') FinancialAid, 
    vwPTU.[UserP Type] as UserPType 

from UsersP p 
    left outer join ListItem liGender on liGender.Id = p.Gender 
    left outer join ListItem liEth on liEth.Id = p.EthnicGroup 
    left outer join ListItem limed on limed.Id = p.FinancialAidId 
    inner join UserPOrgNodeAssociation pona on P.Id = pona.UserPId 
    inner join CoAssociation coda on pona.CoNodeDescAssociationId = coda.Id 
    inner join Company co on coda.companyid=co.id 
    left outer join [dbo].[vw_XUserUniqueView] vwPTU on p.Id = vwPTU.Id 
    and vwPTU.[ValidToDate] > '2015/12/31 23:59 PM' 

where vwPTU.[User Type] is not null 

) 
select Company, count(distinct CoNum) as Total 
from data 
group by company 
+1

的使用條款只是爲了說明,對不對?這真的是你選擇的觀點,對嗎?如果沒有,那麼你可以通過刪除不必要的部分來顯着簡化你的子句。 –

+0

是的with子句是爲了說明。誠然,謝謝。 – Sizons

回答

2

嘗試使用SP_MSForEachDB程序..

exec sp_msforeachdb 'Your Query here'