簡體   English   中英

ssrs嵌套IIF以比較兩個數據集

[英]ssrs nested IIF to compare the two Data sets

我需要創建一個基於兩個數據集(即DataSet1和DataSet2)的增量報告。 如果DataSet1中的任何字段值有任何變化,我都需要以DataSet2作為參考。我需要更改文本框的顏色。 任何人都可以幫我這個問題,我寫了一些代碼,但拋出錯誤。

=IIF(Fields!CIF.value, "DataSet1" = Fields!CIF.value, "DataSet2" AND Fields!Account_ID.value,"DataSet1" = Fields!Account_ID.value,"DataSet2", 
                        IIF( Fields!Account_balance.value, "DataSet1" <> Fields!Account_balance.value, "DataSet2","Yellow","Transparent"),"Transparent","Transparent")

您不能混合數據集。

僅當每個數據集只有一行數據時,此方法才有效。 否則,您將需要弄清楚如何隔離所需的值。

=IIF(MAX(Fields!CIF.value, "DataSet1") = MAX(Fields!CIF.value, "DataSet2") AND MAX(Fields!Account_ID.value, "DataSet1") = MAX(Fields!Account_ID.value, "DataSet2"), 
    IIF(MAX(Fields!Account_balance.value, "DataSet1") <> MAX(Fields!Account_balance.value, "DataSet2"), "Yellow", "Transparent"), "Transparent")

通常,您會在一個表中有一個數據集,然后在另一個數據集中查找相應的值。

如果您的CIF帳戶ID是通用標識符,並且您想對每個帳戶的帳戶余額進行補償,那么我將把表格基於數據集1,然后從數據集2引入值進行比較。 將CIF和帳戶ID合並為一個文本字符串以進行比較。

您的顏色表示將如下所示:

=Lookup(Fields!CIF.value & "|" & Fields!Account_ID.value, Fields!CIF.value & "|" & Fields!Account_ID.value, Account_balance.value, "DataSet2")

SSRS:

使用查找從一對一關系的名稱/值對的指定數據集中檢索值。 例如,對於表中的ID字段,可以使用Lookup從未綁定到數據區域的數據集中檢索相應的Name字段。

另一種方法是在存儲過程中執行此操作,然后將結果作為一個數據集返回。 例如,假設我在表中有10個字段。 我可以為每個記錄創建數據的哈希:

select
    CASE WHEN chkHash2 = chkHash1 THEN 0 ELSE 1 END as 'ChgFlag'
    ,a.*
FROM
(
    select
        HASHBYTES('md5', t2.Field1 + t2.Field2 + ... + t2.Field10) as 'chkHash2'
        ,HASHBYTES('md5', t1.Field1 + t1.Field2 + ... + t1.Field10) as 'chkHash1'
        ,t1.Field1, t1.Field2, ... t1.Field10
    From Table2 t2
    LEFT JOIN Table1 t1 on t1.ID = t2.ID
) a

大假設...兩個表都具有唯一且相關的ID。 這將為您提供Table1(dataset1)字段的結果集和一個標志,該標志將告訴您何時Table2(dataset2)的任何字段發生了更改。

根據您的應用程序,這可能會更容易,更快。 我總是嘗試用SQL而不是SSRS來做WORK。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM