-
SQL Syntax Fehler
Hallo Forum,
ich habe folgenden SQL - Code und bekomme leider eine Fehlermeldung. SQL0104 Token ungültig wird mir angezeigt. Ich sehe persönlich nicht an welcher Stelle ein Syntax - Fehler vorhanden ist.
-
Moin,
ich glaube hinter Menge ist das Komma zuvile.
mfg
DKSPROFI
-
Moin,
also wenn ich das Komma bei Menge entferne markiert er mir die darauffolgende Klammer als Fehler.
-
Das Komma trennt den skalaren Subselect.
Allerdings fehlt bei Aggregaten das Group By und nach der Klammer der finale "select * from temp_result ".
-
Du machst ein With temp_result as (...) greifst aber nicht auf temp_result zu.
Das könnte dann so aussehen:
with temp_result as (
SELECT
BMKONZ as NI,
BMIDEN as Artikel,
TZBEZ1 as Bezeichnung,
BMLIEF as Lieferant,
Count(BMLM) AS Paletten,
Sum(int(BMBMEN)) AS Menge,
(
select
case when sum(int(TPBMEN)) is NULL then 0 else sum(int(TPBMEN)) end
from
pbesttp
where
tpiden = bmiden
and tpttyp in ('E', 'U')
) as Transport
FROM PBESTLOL1
)
select * from temp_result
lg Andreas
-
nee, da fehlt einfach was!
With aaa as ( ...... )
select * from aaa where ..... <---- das fehlt doch!
und im oberen teil mit sum( ...) fehlt evtl ein group by ... oder zumindest ein where
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Desweiteren ist auch dieses Konstrukt nicht erforderlich:
case when sum(int(TPBMEN)) is NULL then 0 else sum(int(TPBMEN)) end
Man kann Aggregate und Einzelwerte nicht einfach mischen.
Hier reicht ein
coalesce(sum(int(TPBMEN)), 0)
Code:
with temp_result as (
SELECT
BMKONZ as NI,
BMIDEN as Artikel,
TZBEZ1 as Bezeichnung,
BMLIEF as Lieferant,
Count(BMLM) AS Paletten,
Sum(int(BMBMEN)) AS Menge,
(
select
coalesce(sum(int(TPBMEN)), 0)
from
pbesttp
where
tpiden = bmiden
and tpttyp in ('E', 'U')
) as Transport
FROM PBESTLOL1
group by BMKONZ , BMIDEN , TZBEZ1 , BMLIEF
)select * from
temp_result
-
Ja ihr habt Recht es fehlt ein Teil. Der SQL - Code ist eig. deutlich größer. Ich wollte nun erstmal stückchenweise den Code zum laufen kriegen. Danke für den Hinweiß mit dem Select. Der Code funktioniert nun.
Danke für die Erklärung @Fuerchau !!
-
Nur so als Nachfrage:
Warum immer Sum(int(Menge)) statt einfach Sum(Menge)?
Similar Threads
-
By camouflage in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 05-02-21, 06:11
-
By oulbrich in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 23-03-15, 17:21
-
By KingofKning in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 08-01-15, 19:13
-
By K_Tippi in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 05-12-02, 11:41
-
By chera in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 14-02-02, 13:26
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks