tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
2677
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von rainair
    rainair rainair ist offline Mitglied
    Registriert seit
    Oct 2007
    Ort
    Nürnberg (Bayern)
    Beiträge
    11
    Hallo,
    ich bastel grad an ner vereinfachten Darstellung für Buchungssätze. Derzeit werden Sie so dargestellt:

    +------+-------------+-----------------------+---------------------+-------------------+--------------------+
    | id | kto_buch | gegenkto_buch | angespr_kto1 | angespr_kto2 | sollhaben_kz |
    +------+--------------+----------------------+---------------------+-------------------+--------------------+
    | 1 | 1400 | 8400 | 10203 | 1776 | S |
    +------+------------- +----------------------+---------------------+-------------------+--------------------+


    Die Darstellung soll wie folgt sein:

    im Falle (sollhaben_kz = S)
    ----SOLL---------|---HABEN
    kto_buch | gegenkto_buch
    angespr_kto1 | angespr_kto2


    im Falle (sollhaben_kz = H)

    ----SOLL---------------|---HABEN
    gegenkto_buch | kto_buch
    angespr_kto2 | angespr_kto1


    In mySQL hätte ich das mit einer SELECT IF-Abfrage und einer UNION gemacht. Aber Access mag das scheinbar nicht. Wer weiß wie das sonst geht?

    danke
    rainer
     
    Das Leben ist zu kurz, um es mit Suchen (nach Bugs) zu verbringen

  2. #2
    Avatar von rainair
    rainair rainair ist offline Mitglied
    Registriert seit
    Oct 2007
    Ort
    Nürnberg (Bayern)
    Beiträge
    11
    Hallo nochmal,

    ich hab jetzt nach langer Bastelei das ganz in MySQL zum Laufen gekriegt aber und zwar so:

    SELECT if(sollhaben_kz= 'S', kto_buch, gegenkto_buch) as SOLL,
    (SELECT if(sollhaben_kz= 'H', kto_buch, gegenkto_buch ))as HABEN, id FROM access
    UNION SELECT if(sollhaben_kz= 'S', angespr_kto1, angespr_kto2) as SOLL,
    (SELECT if(sollhaben_kz= 'H', angespr_kto1, angespr_kto2 )) as HABEN, id
    FROM access order by 1;

    aber bei der Umsetzung in das Access-SQL hab ich richtige Probleme. Könnt das jemand dolmetschen?
     
    Das Leben ist zu kurz, um es mit Suchen (nach Bugs) zu verbringen

  3. #3
    Avatar von tecla
    tecla tecla ist offline Mitglied Gold
    Registriert seit
    Jul 2007
    Beiträge
    163
    Hallo Rainair
    Soviel ich weiss heissts in Access nicht if sondern iif.
    Grüsse, Tecla
     

  4. #4
    Avatar von rainair
    rainair rainair ist offline Mitglied
    Registriert seit
    Oct 2007
    Ort
    Nürnberg (Bayern)
    Beiträge
    11
    Hi Tecla,

    gute Idee, sowas kann glaub ich nur MS produzieren, also ein "IIF".... Da wär ich so schnell net drauf gekommen.

    Also mittlerweilen bin ich soweit:

    SELECT IIF(lnx_fi_buchungen.sollhaben_kz='S', lnx_fi_buchungen.kto_buch, lnx_fi_buchungen.gegenkto_buch) AS SOLL,
    (SELECT IIF(lnx_fi_buchungen.sollhaben_kz='H', lnx_fi_buchungen.kto_buch, lnx_fi_buchungen.gegenkto_buch)) AS HABEN, id FROM lnx_fi_buchungen
    UNION SELECT IIF(lnx_fi_buchungen.sollhaben_kz='S', lnx_fi_buchungen.angespr_kto1, lnx_fi_buchungen.angespr_kto2) AS SOLL,
    (SELECT IIF(lnx_fi_buchungen.sollhaben_kz='H', lnx_fi_buchungen.angespr_kto1, lnx_fi_buchungen.angespr_kto2)) AS HABEN, id FROM lnx_fi_buchungen;

    Allerdings bekomme ich immer eine Fehlermeldung von ACCESS über einen Syntaxfehler.
    Ich hab natürlich die korrekte Schreibweise des IIF auch geprüft
    IIF(Bedingung, truepart, falsepart)

    Kann es sein, dass ACCESS ein Problem mit verschachtelten Abfragen oder so hat? Hab natürlich auch in vielen anderen Foren darüber Infos gesucht, aber da hab ich nichts gegenteiliges gefunden. Was ist an meiner Syntax dann so falsch?
    Wahrscheinlich hab nich nur Tomaten auf den Augen

    Rainair
     
    Das Leben ist zu kurz, um es mit Suchen (nach Bugs) zu verbringen

  5. #5
    Avatar von tecla
    tecla tecla ist offline Mitglied Gold
    Registriert seit
    Jul 2007
    Beiträge
    163
    Morgen Rainair

    brauchts denn die Verschachtelung überhaupt? Wie siehts denn so aus:

    SELECT
    IIF(lnx_fi_buchungen.sollhaben_kz='S', lnx_fi_buchungen.kto_buch, Inx_fi_buchungen.gegenkto_buch) AS SOLL,
    IIF(lnx_fi_buchungen.sollhaben_kz='H', lnx_fi_buchungen.kto_buch, lnx_fi_buchungen.gegenkto_buch) AS HABEN,
    id FROM lnx_fi_buchungen
    UNION
    SELECT IIF(lnx_fi_buchungen.sollhaben_kz='S', lnx_fi_buchungen.angespr_kto1, lnx_fi_buchungen.angespr_kto2) AS SOLL,
    IIF(lnx_fi_buchungen.sollhaben_kz='H', lnx_fi_buchungen.angespr_kto1, lnx_fi_buchungen.angespr_kto2) AS HABEN, id FROM lnx_fi_buchungen;

    Grüsse, Tecla
     

  6. #6
    Avatar von rainair
    rainair rainair ist offline Mitglied
    Registriert seit
    Oct 2007
    Ort
    Nürnberg (Bayern)
    Beiträge
    11
    wow super, ich bin begeistert. Endlich keine Fehlermeldung mehr! Ganz dickes Dankeschön Tecla
    Des war zu einfach, drum bin ich nicht drauf gekommen



    ABER

    Access verlangt jetzt Parameterwerte für 3 verschiedene Attribute:
    Inx_fi_buchungen.gegenkto_buch, lnx_fi_buchungen.angespr_kto1 und lnx_fi_buchungen.angespr_kto2.

    Ich verstehs allerdings nicht warum, denn die Tabelle ist (mit Ausnahme von angespr_kto2) mit Werten gefüllt. Lediglich bei letzterem kann es vorkommen, dass entweder kein oder ein Konto drinsteht.
    Jetzt hab ich in dem IIF nochmal eine IIF-Überprüfung eingebaut, die mir abprüft, ob es sich bei dem einzutragenden Wert um 0 oder NULL handelt.... um das Problem zu umgehen. Aber damit ts leider auch net.

    Ach ja, das ResultSet mit Deinem SELECT sah so aus, dass die erste Zeile immer leer Attribute brachte, die zweite befüllte, die dritte wieder leere, die vierte wieder befüllte.

    Damit darin Werte stehen, sollte ich eben beim Ausführen (lt. Access) die Parameterwerte eingeben. Diese sollte sich aber Access eigentlich ja aus der vorgegebenen Tabelle holen.

    Also ich seh schon, ich bin ein absoluter Access-Depp...
     
    Das Leben ist zu kurz, um es mit Suchen (nach Bugs) zu verbringen

Ähnliche Themen

  1. Ausblenden von Spalten in einer SELECT-Abfrage trotz "SELECT *"
    Von Greq im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 19.11.07, 23:29
  2. SQL Abfrage funktioniert mit Access aber nicht mit mysql
    Von Test im Forum Relationale Datenbanksysteme
    Antworten: 7
    Letzter Beitrag: 08.05.07, 09:34
  3. Access - Abfrage per VBA exportiert aber keine Spaltennamen
    Von fiacyberz im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 03.08.06, 14:05
  4. access 2003 SELECT abfrage mit ASP Variable nach WHERE
    Von codesign im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 10.03.05, 00:01
  5. MS Access Select Abfrage
    Von djjmp im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 23.09.03, 23:49