PDA

View Full Version : Ist SUBSELECT auf DB2/400 aus MS-Query möglich



danloc
17-12-04, 06:38
Hallo!

Ich habe ein korrektes SQL-Statement (läuft im interaktiven SQL einwandfrei), welches ein SUBSELECT enthält. Mit diesem will ich ein Excel-Sheet füllen, via MS QUERY. Diese Art von Abfragen mache ich sehr oft, nur eben ohne SUBSELECT. Wird SUBSELECT überhaupt von MS QUERY unterstützt?

Vielen Dank für Hilfe.


select asart1, asartn, a.ums, b.ums

from arts30aq left join
(select auart1, auart2, auart3, sum(auwerv) as ums
from arts30u
where audajm between 200301 and 200312
group by auart1, auart2, auart3) a
on(asart1 = a.auart1 and asart2 = a.auart2 and asart3 = a.auart3)
left join
(select auart1, auart2, auart3, sum(auwerv) as ums
from arts30u
where audajm between 200312 and 200411
group by auart1, auart2, auart3) b
on(asart1 = b.auart1 and asart2 = b.auart2 and asart3 = b.auart3)
where aslkz = 'A'
order by 2


PS: hoffe, ich habe nicht das falsche Forum erwischt...

Fuerchau
17-12-04, 08:21
Alle SQL's, die per STRSQL auf der AS/400 laufen, können auch mit MS-Query laufen. Es gibt allerdings eine Einschränkung:
Das funktioniert nur in der SQL-Sicht !
MS meldet nur, dass der SQL nicht grafisch dargestellt werden kann, nach einer Bestätigung läufts aber weiter.

Bei den Tabellennamen muss ggf. der Libname mit "LIB.TABLE" definiert werden, dann funktionierts auf jeden Fall.

Parameter können nicht bennat werden, aber mit "?" kann der Select auch variabel laufen. Über den späteren Eigenschaftsdialog der Abfrage (in Excel) können den Parametern dann auch Zellen zugewiesen werden.

danloc
17-12-04, 10:02
Hallo Fuerchau

Vielen Dank für die Antwort. Leider habe ich nun noch mehr Hunger (Parameterabfrage), aber nocht nicht gegessen ;-)

Die Abfrage habe ich angepasst (LIB:TABLE), das bringt leider auch nichts. Ich mache die Abfragen eigentlich immer in der SQL-Sicht, da ich den Code aus der AS kopiere. Die Nachricht die kommt, ist die - mindestens für mich - berüchtigte und überaus vielsagende: "Tabelle LIB.TABLE konnte nicht hinzugefügt werden". Diese kommt ja schlicht bei jedem Syntaxfehler. Wahrscheinlich handelt es sich aber wirklich um einen kleinen Fehler mit grosser Wirkung, nur welcher??? Übrigens arbeiten wir noch mit V5R1 und Office 2003. Hoffe nicht, dass hier etwas klemmt?!

Bezüglich Parameterabfrage habe ich es "grafisch" versucht, coole Sache. Bei einer einfachen Syntax in der SQL-Sicht und dem Einbau des Fragezeichens kommt der Fehler "Parameter sind in Abfragen, die nicht grafisch dargestellt werden können, ungültig". Kann man das doch irgend wie umgehen.

Vielen Dank für die Hilfe!

Fuerchau
17-12-04, 11:24
Mit V5R1 und Office hat das nix zu tun. Ich mach das schon seit Office97 un V3R1 so.

Bei einer grafischen Darstellung muss man Parametern Namen vergeben "=[Parameter]".
In der SQL-Sicht halt ein "?" in der Form " ... where myfield=? ...".

Der Standardfehler ist leider so, man muss halt den SQL genau untersuchen was (in diesem Minifenster) oft mühsam ist. Vielleicht fehlt auf der AS/400 im WRKRDBDIRE der Eintrag deiner AS/400-DB ?