2017-08-16 1 views
0

Ich habe gesucht und bis jetzt konnte nicht herausfinden, ob dies möglich ist.Erstellen eines Datensatzes basierend auf einem anderen Datensatz

Angenommen, ich habe eine Datenquelle, SOURCE1. Ich erstelle daraus einen Datensatz, SET1. Jetzt möchte ich in der Lage sein, ein anderes Dataset zu erstellen, das SET1 als Datenquelle verwendet. Kann ich das irgendwie machen? Ich möchte in der Lage sein, eine Reihe von Abfragen auszuführen, die zusammenarbeiten, um ein Endergebnis zu erstellen, das gemeldet wird.

dh: SET1 = SELECT * FROM SOURCE1 WHERE ...

SET2 = SELECT * FROM SET1 WHERE ...

Andernfalls wäre die einzige Option nur zu halten, die Abfragen Einbettung? Ich würde das lieber vermeiden, wenn es möglich wäre, weil es sehr unlesbar werden würde, da ich mindestens ein Dutzend Abfragen ausführen muss, die alle aufeinander aufbauen.

SET 2 = SELECT * FROM (SELECT * FROM SET 1 WHERE ...) WHERE ...

+0

Sie sagen, Sie wollen um eine Reihe von Abfragen zu erstellen, die verwendet werden, um ein Endergebnis zu erhalten. Wenn Sie nur ein Ergebnis benötigen, warum müssen Sie dann mehrere Datensätze erstellen? Versuchen Sie, eine Reihe von freigegebenen Datasets zu erstellen, die Sie für mehrere Berichte verwenden können? Geben Sie uns ein wenig mehr Informationen und es könnte einen Workaround oder Best Practice geben, da die Verwendung eines Datasets in einem anderen Dataser nicht möglich ist (wahrscheinlich) –

+0

@AlanSchofield Grundsätzlich habe ich eine Reihe von Abfragen in Access, die ich möchten über Abfragen in SSRS auf die Erstellung umgestellt werden. Der Hauptgrund, warum ich mehrere Datensätze erstellen möchte, liegt darin, dass ich nicht sicher bin, ob es möglich ist, das Ziel-Dataset mit nur einer Abfrage zu generieren. Es bedarf einer Reihe von etwa 15 Abfragen, um zum endgültigen Endergebnis zu gelangen Es wäre einfacher, den Datensatz in Schritten zu erstellen, als alle 15 Abfragen in eine große Abfrage zu integrieren. –

Antwort

0

Ich denke, würde (nicht Ihre Anfragen zu wissen), dass Sie es als eine einzelne Abfrage zu schreiben, wäre in der Lage . Der faule Ansatz wäre nur, jede Abfrage in einem Stapel auszuführen, wobei jedes Ergebnis in eine Reihe von temporären Tabellen ausgegeben wird und dann die temporären Tabellen für die endgültige Ausgabe hinzugefügt werden. Wenn nicht effizient, aber es würde funktionieren. Die beste Lösung wäre sicherlich, sie von Grund auf neu zu schreiben, da Access SQL nicht so leistungsfähig und flexibel ist wie T-SQL.

So müssen Sie so etwas wie ..

SELECT * INTO #t1 FROM myTable WHERE blah blah... 
SELECT * INTO #t2 FROM myOtherTable WHERE blah blah... 
SELECT * 
    FROM #t1 a 
    JOIN #t2 b on a.myField = b.myField 

Sie diese Abfrage Abfrage direkt in Ihrem Dataset setzen kann. Es wird die Ergebnisse jeder Abfrage in eine temporäre Tabelle (# t1, # t2 usw.) ablegen, und dann würde die endgültige Anweisung sie alle verbinden.

Wenn Sie beabsichtigen, die einzelnen Abfragen an mehreren Stellen zu verwenden, können Sie auch eine Ansicht für jede Abfrage erstellen, wenn dies möglich ist. Fügen Sie dann einfach die Ansichten in Ihre SSRS-Datasetabfrage ein, um Ihre endgültigen Ergebnisse zu erhalten.

In SSMS schaffen, die Ansichten mit so etwas wie

CREATE VIEW AccessQuery1 AS 
SELECT * FROM myTable where blah blah... 

CREATE VIEW AccessQuery2 AS 
SELECT * FROM myOtherTable where blah blah... 

dann in SSRS Ihre Datasetabfrage wäre nur so etwas wie

SELECT * 
    FROM AccessQuery1 a 
    JOIN AccessQuery2 b on a.myField = b.myField 

Hoffnung, das hilft ...

Verwandte Themen