Ich versuche, Excel Pull-Daten aus einem großen Oracle Data Warehouse über eine ODBC-Verbindung zu verwenden. Ich habe eine Abfrage, die mit dem Editor in Access funktioniert. Ich habe versucht, Power Query und Microsoft SQL zu verwenden, um diese Abfrage zu verwenden, um diese Daten in Excel zu erhalten, und ich bekomme Fehler.Excel OBDC - SQL-Abfrage
Deshalb:
- SQL von Excel ausgeführt Muss in einer anderen Syntax sein? Sollte es nicht immer noch Oracle sein?
- Wie kann ich diese vordefinierte Abfrage verwenden, um das Data Warehouse zu pingen und zu bekommen, was ich brauche?
Hier ist die SQL, die ich bisher habe. Ich musste einige Tabellennamen ändern ... tut mir leid, wenn es das komisch macht.
SELECT Trim([xx]) & " - " & Trim([x]) AS Part, Trim([xxx]) & " - " & Trim([xxxxx]) AS WBSE, field1, field2, IIf(IsNull([field3]),[field4],[field6]) AS SeqDate,
Val([anotherfield]) AS Serial, field7, Val([ORDR_NO]) AS [Order],
field8, Sum(IIf(Not (IsNull([field10])),[foo1],0)) AS CMP_TOT_HRS,
Sum(IIf(Not (IsNull([foo2])),[foo3],0)) AS hrs, Sum(IIf(IsNull([foo4]),[foo5],0)) AS WIP_TOT_HRS,
Sum(IIf(IsNull([foo6]),[QNDT_ACTUAL_HRS],0)) AS WIP_RWK_HRS
FROM ((table1 INNER JOIN table1 ON table2 = table2.xx) INNER JOIN table3 ON table3ID = table3ID)
INNER JOIN (table4 RIGHT JOIN table5 ON table4.id = table5.id) ON table6.no = table6.no
GROUP BY Trim([xx]) & " - " & Trim([xxxx]), Trim([xxxxxxxx]) & " - " & Trim([xxxxxxxxxx]),
table01, table02, IIf(IsNull([table01]),[table02],[table01]),
Val([serno]), table03, Val([ORDR_NO]), table04
HAVING (((Trim([xx]) & " - " & Trim([xxxx])) Like "228K629*" Or (Trim([xx]) & " - " &
Trim([xxxx])) Like "815R920*" Or (Trim([xx]) & " - " & Trim([xxxx])) Like "115K956*" Or (Trim([xx]) & " - " &
Trim([xxxx])) Like "212K517*" Or (Trim([xx]) & " - " & Trim([xxxx])) Like "115K959*" Or (Trim([xx]) & " - " &
Trim([xxxx])) Like "212K585*" Or (Trim([xx]) & " - " & Trim([xxxx])) Like "115K958*" Or (Trim([xx]) & " - " &
rim([xxxx])) Like "125K268*" Or (Trim([xx]) & " - " & Trim([xxxx])) Like "160K477*") AND ((Trim([xxxxxxxxx]) & " - "
& Trim([xxxxxxxxxxxxxx])) Like "*foo*") AND ((lasttable)="foo"))
ORDER BY IIf(IsNull([table01]),[table02],[table1]), Val([serno]);
Ich denke, Sie suchen nach der Einstellung "Pass-Through-Abfrage". Nicht sicher, wo es sich in Ihrer Einrichtung befindet. – Sam
Die Pass-Through-Abfrageoption (in Access) wurde nicht ausgewählt. Muss die ursprüngliche Abfrage als PTQ geschrieben und dann nach Excel kopiert werden? Ziel ist es, Zugriff vollständig zu vermeiden und nur Excel verwenden, um abzufragen, was wir aus dem Data Warehouse benötigen. Ich weiß, dass VBA-Code verwendet werden kann, um eine SQL-Abfrage auszuführen, aber ich bin ziemlich arm an VBA, also möchte ich vermeiden (zumindest für jetzt) – bm0r3son
Das hängt davon ab, welchen Treiber Sie verwenden. Teilen Sie Ihre Fragen - ich denke, das wird anderen helfen, Ihnen zu helfen – Sam