[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2006
    Beiträge
    2.077

    SQL zum wahnsinnig werden

    Hi *all,habe hier ein SQL Statement welches auf Fehler läuft.

    (V5R4)Spalte *N oder Ausdruck in SELECT-Liste nicht gültig.

    ELECT VKL, FIRMA, KND, ABKZ FROM ARUBA_MSVC/PLANZ WHERE (DATUM >= '20140101') AND (DATUM <= '20140131') OR (DATUM >= '20140201')AND (DATUM <= '20140228') GROUP BY VKL, Firma, knd, abkz

    Wenn ich das mit dem Datum rausnehme läuft er. Sprich am group liegt es nicht.Was jemand was ihm fehlt?GG

  2. #2
    Registriert seit
    May 2002
    Beiträge
    1.121
    Versuche das ganze doch mal mit BETWEEN
    PHP-Code:
    SELECT VKLFIRMAKNDABKZ 
    FROM ARUBA_MSVC
    /PLANZ 
    WHERE DATUM between 
    '20140101' AND '20140131' 
    OR DATUM between  '20140201' AND '20140228' 
    GROUP BY VKLFirmakndabkz 
    Gruß
    Ronald

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.250
    Prüfe mal die Definition, ob das Feld "DATUM" auch Char ist, meist sind solche Felder numerisch und Vergleiche gehören dann nicht in Hochkomma.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Aug 2006
    Beiträge
    2.077
    Zitat Zitat von malzusrex Beitrag anzeigen
    Versuche das ganze doch mal mit BETWEEN
    PHP-Code:
    SELECT VKLFIRMAKNDABKZ 
    FROM ARUBA_MSVC
    /PLANZ 
    WHERE DATUM between 
    '20140101' AND '20140131' 
    OR DATUM between  '20140201' AND '20140228' 
    GROUP BY VKLFirmakndabkz 
    Gruß
    Ronald
    Das kann ich leider nicht, da es ja aus Aruba kommt und da habe ich keinen Einfluß drauf

    Habe es jetzt doch mal probiert, between bringt auch nichts

  5. #5
    Registriert seit
    Aug 2006
    Beiträge
    2.077
    Hallo, das Feld ist char, habe es auch als 273 gecastet bringt aber auch nichts.

    Anbei mal das create view

    CREATE VIEW PLANZ AS SELECT ALL T01.STMOAN AS JM, T01.STKTO AS VKL,
    T01.STTENR AS KND, DEC(1, 2, 0) AS FIRMA, DEC(0, 2, 0) AS ABKZ, CAST
    (SUM(CASE WHEN STPLIS = 1 THEN STWT02 ELSE 0 END) AS DEC(10, 3)) PL
    AN, CAST(SUM(CASE WHEN STPLIS = 2 THEN STWT02 ELSE 0 END) AS DEC(10,
    3)) IST, CAST( (SUBSTR(DIGITS(T01.STMOAN), 1, 4) || SUBSTR(DIGITS(T
    01.STMOAN), 5, 2) || '01') AS CHAR(8) CCSID 273) AS DATUM, SUBSTR(DI
    GITS(T01.STMOAN), 1, 4) AS JAHR, SUBSTR(DIGITS(T01.STMOAN), 5, 2) AS
    MONAT FROM STA01PF T01, ADR01PF T02 WHERE STFA = 1 AND
    STFAKT = 1 AND STMOAN > 201300 AND STVDST = 88 AND STSAAR <> '1' AND
    ADABKZ = 0 AND ADKTO = STTENR AND ADSTS = 0 AND ADFA = 1 GROUP BY S
    TMOAN, STKTO, STTENR


    Hatte das | auch durch concat ersetzt, bringt aber nichts.
    GG

  6. #6
    Registriert seit
    Aug 2006
    Beiträge
    2.077
    Ich habe jetzt das Datum mal als richtiges Datum umgesetzt, ändert aber nichts.

    GG

  7. #7
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Hallo,

    also ich hab jetzt mal einen ähnlichen SQL nachgebaut (dieselbe Struktur wie oben genannt). Und bei mir läuft das ohne Probleme. Wir haben auch V5R4.

    Gruß,
    KM

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.250
    Das "|"-Zeichen ist leider CCSID abhängig.
    Daher muss der Job korrekt in der CCSID zum Erstellzeitpunkt der View laufen, wahrscheinlich 273.
    Mach mal einen CHGJOB CCSID(273) und nur einen "select * from PLANZ".

    Alternativ versuche mal, den Select der View selber anzugeben:

    select ...
    from (select der View) planz

    und prüfe die Fehler ggf. auch im Joblog.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Aug 2006
    Beiträge
    2.077
    Das schöne ist, ein query macht alles, auch Gruppenwechsel etc. Nur leider kann mann aus einem Query mit Gruppenwechsel kein SQL machen. Die groups läßt der bei der Umwandlung weg. Warum auch immer.
    Die Aruba hat jetzt ein Würkaround gefunden das bei der Abfrage die nur zum Auffächern der Daten benutzt wurde die where Klausel wegfällt. Es werden zwar dann mehr Daten vom Client gefiltert aber bei jetzt 12.000 Datensätzen geht das noch. Pro Jahr kommen weitere 12.000 dazu ich hoffe bis es kritisch wird bin ich bei V9R3 ;-)
    Ich werde das ganze mal in einem anderern Kontext testen, evtl. mal bei Holger ich hoffe der ist über V5R4 hinweg.GG

  10. #10
    Registriert seit
    Nov 2003
    Beiträge
    2.309
    Holles Pub1 läuft derzeit noch unter V5R3 ...

    Zitat Zitat von KingofKning Beitrag anzeigen
    Ich werde das ganze mal in einem anderern Kontext testen, evtl. mal bei Holger ich hoffe der ist über V5R4 hinweg.GG

  11. #11
    Registriert seit
    Aug 2006
    Beiträge
    2.077
    Zitat Zitat von Pikachu Beitrag anzeigen
    Holles Pub1 läuft derzeit noch unter V5R3 ...
    Tja, dann ist er ja drüber hinweg, nur die Richtung stimmt nicht ;-)

    GG

Similar Threads

  1. Unnötige Leerzeischen werden übernommen
    By Steffi in forum NEWSboard Java
    Antworten: 9
    Letzter Beitrag: 22-12-13, 11:24
  2. Daten werden vom ODBC abgeschnitten
    By synus in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 08-04-03, 13:12
  3. Unsere Software muß mehrsprachig werden !
    By W.Steiner in forum Archiv NEWSblibs
    Antworten: 1
    Letzter Beitrag: 13-11-02, 10:12
  4. Wo werden abgelehnte Loginversuche gespeichert?
    By lefthander in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 06-08-02, 14:53
  5. Wer möchte Moderator werden?
    By Burgy Zapp in forum NEWSboard Drucker
    Antworten: 0
    Letzter Beitrag: 08-07-02, 23:44

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •