2014-10-27 70 views
1

我對SSRS和SQL Server相當新,我需要以下問題的幫助:ssrs隱藏行正在求和

我有兩個表。其中包含一小部分客戶購買單一產品的時間標記記錄。另一張表包含該產品價格變化的時間戳記錄。

表1
PurchaseDateTime - primary keyCustCodekgs

表2

PriceChangeDateTime

我可以使用下面的查詢顯示來自在表矩陣兩個表中的所有需要​​的信息:

SELECT input.purchasedatetime, 
     input.custcode, 
     input.kgs, 
     price.price, 
     price.changedatetime 
FROM input 
     LEFT OUTER JOIN price 
        ON input.purchasedatetime > price.changedatetime 

但是,查詢正確返回包含被取代價格的結果。我可以隱藏這些行,但總數仍然總和。我可以通過Price.ChangeDateTime將它分組爲第三個子組,然後在TopN上過濾它,但結果是相同的。顯示是正確的,總數不是,這可能是預期的,因爲總數是在較高級別的分組中。 我無法將可見性條件應用於SUM(),因爲它不允許聚合,而我隱藏在Previous()上。 我希望查詢完成全部工作,並且我看到其他一些數據庫實現了LIMIT 1子句,但在這裏不支持。 我仍然要在報表級嘗試自定義代碼,但我對VB代碼不太熟悉。

我使用SQL Server 2014 Express和Visual Studio的集成2013外殼爲數據工具或BI

任何幫助深表感謝。

回答

0

您可以使用GROUP BY和MAX

得到最大程度的修改日期時間每次購買時間

這些值可以進一步結合,以獲得價格每購買一次

SQL Fiddle

with cte 
as 
(
SELECT input.purchasedatetime, MAX(price.changedatetime) as ChangeDateTime 
FROM input 
LEFT OUTER JOIN price 
ON input.purchasedatetime > price.changedatetime 
GROUP BY input.purchasedatetime 
) 
SELECT input.purchasedatetime, 
     input.custcode, 
     input.kgs, 
     price.price, 
     price.changedatetime 
FROM input 
     JOIN cte 
on input.purchasedatetime = cte.purchasedatetime 
left join price 
on cte.changedatetime = price.changedatetime 
+0

作品像一個夢!感謝堆,雷達。 – Darac 2014-10-28 06:38:03