Ich habe ein MS SQL unter Power Query laufen, um einige Daten in Excel zu bekommen.Power-Abfrage-Schleife von SQL dynamische Tabellenname
haben wir mehrere Projekte und Codes für sie, die aus einer anderen Abfrage kommt wie folgt:
let
Source = Projects[Code]
in
Source
Beispieldaten:
+------+
| code |
+------+
| 2 |
| 3 |
| 6 |
| 76 |
| 77 |
| 78 |
| 79 |
| 80 |
| 81 |
| 82 |
| 83 |
| 84 |
| 85 |
| 86 |
| 87 |
| 88 |
| 89 |
| 90 |
| 91 |
| 92 |
| 93 |
| 94 |
| 95 |
| 96 |
| 97 |
| 99 |
| 100 |
| 101 |
| 102 |
| 103 |
+------+
, was ich tun möchte, ist, die folgenden Haupt Abfrage auszuführen für jeden Projektcode.
let
Source = Sql.Database("server", "logo", [Query="select '92' as [santiye] , stockref, DATE_ , AMOUNT, PRICE, total from LG_092_01_STLINE where cancelled = 0 and TRCODE =1"]),
#"Merged Queries" = Table.NestedJoin(Source,{"stockref"},Query2,{"stockref"},"NewColumn",JoinKind.LeftOuter),
#"Expanded NewColumn" = Table.ExpandTableColumn(#"Merged Queries", "NewColumn", {"CODE", "NAME"}, {"NewColumn.CODE", "NewColumn.NAME"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded NewColumn",{"stockref"}),
#"Reordered Columns" = Table.ReorderColumns(#"Removed Columns",{"NewColumn.CODE", "NewColumn.NAME", "DATE_", "AMOUNT", "PRICE", "total"}),
#"Changed Type" = Table.TransformColumnTypes(#"Reordered Columns",{{"santiye", Int64.Type}}),
#"Merged Queries1" = Table.NestedJoin(#"Changed Type",{"santiye"},Projects,{"Code"},"NewColumn",JoinKind.LeftOuter),
#"Expanded NewColumn1" = Table.ExpandTableColumn(#"Merged Queries1", "NewColumn", {"Project Name"}, {"NewColumn.Project Name"}),
#"Renamed Columns" = Table.RenameColumns(#"Expanded NewColumn1",{{"NewColumn.Project Name", "Project Name"}}),
#"Reordered Columns1" = Table.ReorderColumns(#"Renamed Columns",{"santiye", "Project Name", "NewColumn.CODE", "NewColumn.NAME", "DATE_", "AMOUNT", "PRICE", "total"})
in
#"Reordered Columns1"
Der Name der Tabelle in SQL soll dynamisch geändert werden und von der anderen Abfrage als eine Schleife übernommen werden und alle Daten auf einmal zusammenführen.
LG_092_01_STLINE = LG_ {code} _01_STLINE
[query = "select '92' as = [query =" select {code} als
i ähnliche Schleife in SQL-Abfrage gemacht, aber "exec()" funktioniert nicht bei Stromausfall.
while @cnt <= @maxrow
begin
select @firma = nr from (SELECT ROW_NUMBER() over (order by logicalref asc) as NUM, NR FROM L_CAPIFIRM ) nn where NUM = @cnt
select @santiye = name from L_CAPIFIRM where NR = @firma
set @firma = RIGHT('000'+CAST(@firma AS VARCHAR(3)),3)
set @items = 'LG_' + convert(nvarchar(3),@firma) + '_ITEMS'
set @stline = 'LG_' + convert(nvarchar(3),@firma) + '_01_STLINE'
danke für Ihre Antwort, aber die Tabellen in der Datenbank hängt von der ersten Codeliste ab. Diese Liste kann Zeit zu Zeit ändern, so dass die Tabellen, die Union sollte auch ... Beispiel Tabellennamen in der Datenbank in Abhängigkeit von der Liste des Projektcodes ändert: 'LG_002_01_STLINE' ' LG_003_01_STLINE' 'LG_006_01_STLINE' ' LG_076_01_STLINE' etc ... und auch ich alle diese Tabellen in einer Tabelle in Power-Abfrage Union –
Union dieses Szenario ist bereits in meiner Antwort oben, ref der Filter Schritt in der 3. Para. –
Ich denke, mein Wissen Grenzen zu verstehen, Ihre Antwort ... ich werde sehr froh sein, wenn Sie einfach die Beispieldatei bearbeiten würde ich angehängt ... [Beispieldatei] (https://drive.google .com/open? id = 0BxC6zZIYn1SzMjltbEhDRUFvMG8) –