Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
nach sonderzeichen "#" filtern
zurück: Abfrage -> Kriterium mit Eval -> Kombifeld -> 2-te weiter: Parameterabfrage auf ID Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Access Neuling77
Gast


Verfasst am:
19. Okt 2012, 09:48
Rufname:

nach sonderzeichen "#" filtern - nach sonderzeichen "#" filtern

Nach oben
       Version: Office 2003

Hallo zusammen,

leider hilft mir der Hr. google nicht weiter und ich hoffe hier auf Hilfe.

Mein Problem ist eigentlich recht banal, aber ich komme nicht auf die Lösung. Per UNION erstelle ich eine neue Tabelle aus vielen anderen Tabellen. Dabei ist der SELECT in [ ... ] gestellt. In einer der Tabellen möchte ich nun aber in einem Feld nach dem Sonderzeichen # filtern. Meines Wissens nach muss ich dieses Sonderzeichen ebenfalls in [] setzen (sonst klappt das Filtern nicht). Da aber der UNION SELECT bereits in [] steht, klappt das Filtern des # nur außerhalb der UNION []. So ist das Ergebniss aber falsch da ich die # nicht über alle Tabellen ausschließen möchte.

Hier mein SQL
Code:
SELECT   *
INTO     recontable
FROM     [SELECT "MurexRates" AS Action, r.origincontract, r.tradeid,
                 r.typology, r.counterpart, r.currency AS cur, r.value_date,
                 r.flow_nature, r.amount, r.fxrate, r.insertiondate
          FROM   ALL_MurexRates AS r
          WHERE  r.TYPOLOGY IN ('XCCY SWAP', 'CA', 'Inflation Swap PW', 'IRS',
                                'CF', 'OIS', 'FRA', 'IRS Piecewise')
          AND    r.value_date >(today)
          UNION
          SELECT "MurexOption" AS Action, o.origincontract, o.tradeid,
                 o.typology, o.counterpart, o.currency AS cur, o.value_date,
                 o.flow_nature, o.amount, o.fxrate, o.insertiondate
          FROM   ALL_MurexOption AS o
          WHERE  o.value_date >(today)
          UNION
          SELECT "Sophis" AS Action, s.tradeid AS origincontract, s.tradeid,
                 s.typology, s.counterpart, s.currency AS cur, s.value_date,
                 s.flow_nature, (s.amount*-1) , s.fxrate, s.insertiondate
          FROM   ALL_Sophis AS s
          WHERE  s.value_date >(today)
          UNION
          SELECT "CalypsoMurexRates" AS Action, Mid(c.refo,5) AS origincontract,
                 c.gmref AS tradeid, c.gmsoktnr AS typology, c.counterpart,
                 c.gmwhg AS cur, c.gmval AS value_date, c.counterpart AS flow_nature,
                 c.gmbew AS amount, c.gmbew AS fxrate, c.gmbuta AS insertiondate
          FROM   ALL_Calypso AS c
          WHERE c.refo like 'MMX_*'
          UNION
          SELECT "CalypsoIntern" AS Action, c1.refo AS origincontract,
                 c1.gmref AS tradeid, c1.gmsoktnr AS typology, c1.counterpart,
                 c1.gmwhg AS cur, c1.gmval AS value_date, c1.counterpart AS flow_nature,
                 c1.gmbew AS amount, c1.gmbew AS fxrate, c1.gmbuta AS insertiondate
          FROM   ALL_Calypso AS c1
          WHERE  c1.refo is NULL
          UNION
          SELECT "CalypsoFX_MM" AS Action, c2.refo AS origincontract,
                 c2.gmref AS tradeid, c2.gmsoktnr AS typology, c2.counterpart,
                 c2.gmwhg AS cur, c2.gmval AS value_date, c2.counterpart AS flow_nature,
                 c2.gmbew AS amount, c2.gmbew AS fxrate, c2.gmbuta AS insertiondate
          FROM   ALL_Calypso AS c2
          WHERE  c2.refo like 'SPT*'
          OR     c2.refo like 'FWD*'
          OR     c2.refo like 'FXS*'
          OR     c2.refo like 'LAD*'
          OR     c2.refo like 'CAF*'
          OR     c2.refo like 'CAS*'
          UNION
          SELECT "CalypsoOption" AS Action, c3.refo AS origincontract,
                 c3.gmref AS tradeid, c3.gmsoktnr AS typology, c3.counterpart,
                 c3.gmwhg AS cur, c3.gmval AS value_date,
                 c3.counterpart AS flow_nature, c3.gmbew AS amount,
                 c3.gmbew AS fxrate, c3.gmbuta AS insertiondate
          FROM   ALL_Calypso AS c3
          WHERE  c3.refo not like 'SPT*'
          AND    c3.refo not like 'FWD*'
          AND    c3.refo not like 'FXS*'
          AND    c3.refo not like 'LAD*'
          AND    c3.refo not like 'MMX_*'
          AND    c3.refo not like 'MSO_*'
          AND    c3.refo not like 'CAS*'
          AND    c3.refo not like 'CAF*'
          AND    (c3.gmref like '*XO*'
          OR      c3.gmref like '*FO*')
          UNION
          SELECT "CalypsoSophis" AS Action, mid(c4.refo,5) AS origincontract,
                 c4.gmref AS tradeid, c4.gmsoktnr AS typology, c4.counterpart,
                 c4.gmwhg AS cur, c4.gmval AS value_date,
                 c4.counterpart AS flow_nature, c4.gmbew AS amount,
                 c4.gmbew AS fxrate, c4.gmbuta AS insertiondate
          FROM   ALL_Calypso AS c4
          WHERE  c4.refo like 'MSO_*']. AS temp
WHERE    temp.counterpart not like '*[#]*'
ORDER BY temp.value_date, temp.cur, abs(temp.amount);
Das WHERE temp.counterpart not like '*[#]*' soll weiter oben unter einen der UNION Select gesetzt werden. Dann bekomme ich aber eine Fehlermeldung. Und wenn ich die UNION SELECT in () statt [] setzte erhalte ich ebenfalls einen Fehlermeldung.

Weiss hier jemand Rat?
Vielen Dank schonmal.

grüsse
Gast



Verfasst am:
19. Okt 2012, 10:49
Rufname:


AW: nach sonderzeichen "#" filtern - AW: nach sonderzeichen "#" filtern

Nach oben
       Version: Office 2003

Zitat:
Da aber der UNION SELECT bereits in [] steht ...
Code:
...
FROM [ ... ]. AS temp
...

Du hast es hier mit einem Foul des Abfrageeditors zu tun. Der verbreitet eben nicht nur Wohltaten, sondern hat auch Fehler, und somit sollte man immer wissen, was man tut und wie das Ergebnis in SQL aussehen muss statt sich alleine auf den Abfrageeditor zu verlassen und dann verlassen zu sein.

Ändere die eckigen Klammern und den überflüssigen Punkt zurück in runde Klammern und speichere die Abfrage: Ein Entwickler lässt sich vom Assistenten helfen, aber nicht beherrschen.
Code:
FROM ( ... ) AS temp
Access Neuling77
Gast


Verfasst am:
19. Okt 2012, 12:19
Rufname:

AW: nach sonderzeichen "#" filtern - AW: nach sonderzeichen "#" filtern

Nach oben
       Version: Office 2003

hi gast,

vielen dank für den tipp, so gehts. darf ich nur noch fragen warum? ich habe das sql selber, ohne den assi erstellt. will aber nicht ausschließen die abfrage mal mit dem editior geöffnet zu haben.
mir ist aber schon öfter aufgefallen, das access die abfragen oft ändert (z.b. mit so komischen [] und alias namen). ich dachte immer das die optimiert gespeichert werden.

grüsse
Gast



Verfasst am:
19. Okt 2012, 14:06
Rufname:

AW: nach sonderzeichen "#" filtern - AW: nach sonderzeichen "#" filtern

Nach oben
       Version: Office 2003

Zitat:
will aber nicht ausschließen die abfrage mal mit dem editior geöffnet zu haben
Da liegt der Hase im Pfeffer.

Der grafische Abfrageeditor (den manche bis viele ausschließlich verwenden und für das Höchste halten, was SQL machen kann) erzeugt SQL-Anweisungen aus den per Oberfläche erstellten Informationen, er checkt aber auch eine vorhandene SQL-Anweisung und überarbeitet sie nach eigenen Regeln, und damit ist zu rechnen, wenn man auch nur mal kurz die Entwurfsansicht verwendet. In der SQL-Ansicht passiert das eigentlich nicht.

Zum einen ist nun dieser Abfrageeditor vorrangig dafür da, um Unbedarften, Anfängern und "Faulen" zu funktionierenden Abfragen zu verhelfen. Optimale/gute Abfragen können da nicht zwingend erwartet werden.
Andererseits ist dieser programmierte Assistent auch nicht ganz fehlerfrei - was man vielleicht angesichts der vielen unbekannten Eingabeparameter und vor allem hinsichtlich möglicher Komplexität des Ergebnisses auch gar nicht anders erwarten kann. Der oben genannte Klammerfehler ist übrigens einfach reproduzierbar, z.B. in dem man eine Tabelle mit einer Unterabfrage joint und dann zwischendurch in die Entwurfsansicht wechselt.

Zitat:
abfragen ... optimiert gespeichert werden
Das ist dann ein extra Vorgang. Mit der ersten Ausführung der Abfrage nach Änderung der Abfragedefinition wird durch die Jet-Engine die SQL-Anweisung noch einmal geparst (zwecks Feststellung von Fehlern), dann optimiert und ein kompilierter Ablaufplan erstellt und abgespeichert. Dieser Ablaufplan wird dann nachfolgend genutzt (sofern sich die Abfrage nicht ändert).

Wenn jetzt die eigenmächtigen Änderungen des Abfrageeditors nicht als Änderung mit Notwendigkeit Erstellung neuer Ablaufplan erkannt werden, kann es durchaus sein, dass ein alter, aber funktionierender Ablaufplan verwendet wird, obwohl in der gespeicherten Abfrage eine mittlerweile fehlerhafte SQL-Anweisung steht. Wenn nicht, kann man zu der Schlussfolgerung kommen, dass Access seine eigene Abfrage nicht versteht.
Access Neuling77
Gast


Verfasst am:
22. Okt 2012, 12:53
Rufname:


AW: nach sonderzeichen "#" filtern - AW: nach sonderzeichen "#" filtern

Nach oben
       Version: Office 2003

hallo,

ok verstehe. vielen dank für die ausführliche erläuterung.

grüsse
jens
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: unbekannte Teilmenge filtern 1 Access_Newbie_84 684 12. Sep 2007, 18:12
Thomas2007 unbekannte Teilmenge filtern
Keine neuen Beiträge Access Tabellen & Abfragen: Filtern mit Drop Down in neues Formular????? 5 seppel27 2109 14. Aug 2007, 09:07
Willi Wipp Filtern mit Drop Down in neues Formular?????
Keine neuen Beiträge Access Tabellen & Abfragen: Nach Zeitraum filtern (NULL-Wert Problem) 1 Neo3000 686 05. Jul 2007, 11:26
Neo3000 Nach Zeitraum filtern (NULL-Wert Problem)
Keine neuen Beiträge Access Tabellen & Abfragen: Daten in access 2003 - Filtern leerer Felder 2 Amitl 1612 30. Mai 2007, 21:25
Amitl Daten in access 2003 - Filtern leerer Felder
Keine neuen Beiträge Access Tabellen & Abfragen: Datumsbereiche auf Quartal filtern? 5 IV 8521 09. Apr 2007, 15:10
steffen0815 Datumsbereiche auf Quartal filtern?
Keine neuen Beiträge Access Tabellen & Abfragen: Alle Datensätze, die in einem Jahr und Monat sind filtern 3 Desert Storm 808 02. Apr 2007, 15:49
Thomas2007 Alle Datensätze, die in einem Jahr und Monat sind filtern
Keine neuen Beiträge Access Tabellen & Abfragen: Report filtern? 2 joob_rz 511 01. März 2007, 17:20
joob_rz Report filtern?
Keine neuen Beiträge Access Tabellen & Abfragen: nur gefüllte ds filtern 4 kaoru 394 12. Feb 2007, 09:29
kaoru nur gefüllte ds filtern
Keine neuen Beiträge Access Tabellen & Abfragen: Access 2000 : Abfrage zum Filtern des Geburtsjahres ! 7 rabie 2315 08. Feb 2007, 12:35
rabie Access 2000 : Abfrage zum Filtern des Geburtsjahres !
Keine neuen Beiträge Access Tabellen & Abfragen: Geburtstage filtern 1 Unrealfighter 801 05. Okt 2006, 06:57
jens05 Geburtstage filtern
Keine neuen Beiträge Access Tabellen & Abfragen: In Abfragen nach Datum filtern 12 grandmasterb10 1003 09. Sep 2006, 17:51
grandmasterb10 In Abfragen nach Datum filtern
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage über Drop-Down-Felder filtern 13 snatchmo66 998 02. Jan 2006, 11:48
Willi Wipp Abfrage über Drop-Down-Felder filtern
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft-Excel Diagramme