2012-01-30 77 views
0

我有如下一段SQL語句:SQL在SSMS中工作,但不在SSRS報告中?

select 
    l.lease_id , 
    l.tenant_trading_name , 
    p.building_name , 
    l.negotiation_type , 
    l.net_area , 
    l.lease_source , 
    l.deal_approved_date , 
    l.building_id , 
    p.building_id as building_id_2 
from 
    lease_deal.lease l 
    inner join property.property p 
     on p.building_id = l.building_id 
where 
    l.deal_approved_date >= @dateFrom 
    and l.deal_approved_date <= @dateTo 
    and l.lease_status = @leaseStatus 

這個作品在SSMS完美的罰款(提供我聲明變量),但是當我增加一條,作爲一個數據集上的報告(稱爲dsDetail)我報表試圖運行時收到以下錯誤:

客戶端呈現期間發生錯誤。報告處理期間發生錯誤 。數據集 'dsDetail'的查詢執行失敗。必須聲明標量變量「@building_id」。關鍵字'和'附近的語法錯誤 。

我不明白錯誤是什麼意思,並且在過去的半小時內谷歌搜索問題後覺得沒有更接近的決議。請幫忙!

+0

另外值得注意的是,最後兩列本來不是我查詢的一部分,我只是添加它們以查看是否可能沒有讓他們傷害到ssrs中的連接。 – Codingo 2012-01-30 03:49:54

+0

我沒有在您的查詢中看到@building_id。 SSRS在哪裏獲得? – Alex 2012-01-30 03:52:34

+0

@Alex這不是,這就是爲什麼我不明白。我已經繼承了這個報告,所以它可能是dsDetail在以前版本中的一個變量(我將很快檢查版本控制)。有什麼方法SSRS可以以某種方式引用此數據集的舊版本? – Codingo 2012-01-30 03:59:23

回答

1

已解決:不確定是什麼造成了這個問題,但似乎是一個奇怪的緩存問題。從SSRS完全刪除報告並重新上傳。

+0

我發現有時變量在刪除時並未從報表中完全刪除。要解決的另一個選項是在解決方案資源管理器中右鍵單擊報告 - >查看代碼。然後搜索參數名稱並將其從XML中移除。 – Bryan 2012-01-30 13:01:22

1

您使用的查詢有所不同。由於這裏沒有這樣的變量 - 請檢查SSRS中使用的查詢。

+0

我發現在以前的版本中,這導致我刪除並重新上傳報告,並從這裏一切工作。非常感謝您的幫助! – Codingo 2012-01-30 04:20:24