2016-04-18 5 views
0

Für jede Zeile in meinem Bericht habe ich ein Feld, in dem ich ein anderes Dataset überprüfen muss, um die Daten zu ermitteln, die dort eingehen.Zugriff auf ein anderes Dataset in einem Ausdruck

Dies ist die Abfrage für das Daten-Set:

 select t1.this, t2.that 
     from thisTable t1 
     left join thatTable t2 ON t1.id = t2.id 
     where t1.someId = @param1 
     and t2.someId = @param2 

Gibt es eine Möglichkeit in Parametern zu einer anderen Datenmenge über einen Ausdruck zu übergeben?

Danke!

Antwort

1

Sie können so etwas wie dies versuchen:

einen Datensatz erstellen und Suchschlüssel machen:

SELECT t1.this, t2.that, 
    CAST(t1.someId AS VARCHAR(5)) + CAST(t2.someId AS VARCHAR(5)) as LkpKey 
FROM thisTable t1 
LEFT JOIN thatTable t2 on t1.id = t2.id 

Jetzt im Feld Expression Sie eine LookUp verwenden, um den gewünschten Wert zu erhalten. Dabei sind #YourIDField1 und #YourIDField2 die Werte aus dem ursprünglichen Datensatz, die Sie als LookUp verwenden möchten, und #FieldYouWant ist der Wert, den Sie aus dem LookUp-Datensatz erhalten möchten.

=LookUp(Fields!#YourIDField1.Value & Fields!#YourIDField2.Value, 
    Fields!LkpKey.Value, 
    Fields!#FieldYouWant.Value, 
    "#YourDataSet") 

Sie können die Suche in einer IIF wickeln, wenn ein Standardwert, wie dies gewünscht ist:

=IIF(LookUp(Fields!#YourIDField1.Value & Fields!#YourIDField2.Value, 
     Fields!LkpKey.Value,Fields!#FieldYouWant.Value, "#YourDataSet") <> nothing, 
    LookUp(Fields!#YourIDField1.Value & Fields!#YourIDField2.Value, 
     Fields!LkpKey.Value,Fields!#FieldYouWant.Value, "#YourDataSet"), 
    "Default") 
Verwandte Themen