MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 24.05.2018, 19:09   #1
magic1708
MOF Koryphäe
MOF Koryphäe
Standard Acc2010 - Abfrage ist nicht N

Hallo zusammen,

irgendwie stehe ich gerade aufm Schlauch.

Ich möchte in einem SQL einfach nur ausschließen wenn in einer Spalte X der Wert N steht.

Mehr nicht... Komme einfach nicht auf die Lösung:

Code:

Where EATRITT.OrgID=1 AND EmailP is not null and emailp like '*@*' AND   mitglied.Newsletter is null

__________________

Gruß Matthias
magic1708 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.05.2018, 22:00   #2
Beaker s.a.
MOF Koryphäe
MOF Koryphäe
Standard

Code:

… And Tabelle.X = "N"
- oder nicht?

__________________

--
S.M.I.²L.E.
Beaker s.a. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.05.2018, 22:13   #3
fraeser
MOF Meister
MOF Meister
Standard

Der TS wollte es doch ausschließen...

Also ungefähr...
Code:

...AND Tabelle.X <> 'N'
oder ggf. besser

Code:

...AND NOT Tabelle.X = 'N'
In diesem Forum gibt es aber Spezis, die uns noch eines Besseren belehren werden...

__________________

Gruß, Jan

Zitat:

Programmieren und Microsoftail: "Gestern stand ich noch am Abgrund.....heute bin ich einen Schritt weiter....!"

fraeser ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.05.2018, 23:19   #4
ebs17
MOF Guru
MOF Guru
Standard

@Jan: Beide Deiner Varianten sind sachlich richtig und funktionieren, beide können aber keine Indizes nutzen - aber wer macht und will das schon.
Code:

... Tabelle.X > 'N' OR Tabelle.X < 'N'
Zusätzlich:
Code:

Where ... AND EmailP is not null and emailp like '*@*' ...
Hier hat sich der Autor selber verschlüsselt, dass es sich um das gleiche Feld handelt. Wenn man nun ein Feld mit irgendetwas vergleicht wie hier im zweiten Kriterium, entfallen automatisch NULL-Inhalte, denn mit NULL kann man nicht vergleichen. Folglich ist das erste Kriterium höchst überflüssig - es sei denn, man braucht Codezeilen und spannende und in Übersicht und Lesbarkeit verschlechterte Ausdrücke.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}
Dein Dankeschön: DBWiki=>Spende

Geändert von ebs17 (24.05.2018 um 23:34 Uhr).
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.05.2018, 23:27   #5
Beaker s.a.
MOF Koryphäe
MOF Koryphäe
Standard

@Jan
O.K., falsch gelesen

@Eberhard
das muss dann aber geklammert werden, - oder?
Code:

... AND (Tabelle.X > 'N' OR Tabelle.X < 'N')

__________________

--
S.M.I.²L.E.
Beaker s.a. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.05.2018, 23:34   #6
ebs17
MOF Guru
MOF Guru
Standard

Zitat:

das muss dann aber geklammert werden, - oder?

Genau. Ich hatte es in Gedanken, aber nicht umgesetzt. Der Folgegedanke machte sich schon breit.

Schön, dass jemand mitdenkt und versteht.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.05.2018, 08:11   #7
magic1708
Threadstarter Threadstarter
MOF Koryphäe
MOF Koryphäe
Standard

Guten MOrgen,

hier mal die komplette Abfrage:

Code:

Select
EmailP As email,
Vorname as Firstname, 
[Name] as Lastname,
Geburtstag, 
Geschlecht, 
Ausweisnr As Mitgliedsnummer, 
Switch(Geschlecht = 'M', 'Lieber', Geschlecht = 'W', 'Liebe') As ANSPRACHE_FREUNDLICH,
Switch(Geschlecht = 'M','Sehr geehrter Herr', Geschlecht = 'W', 'Sehr geehrte Frau') As ANSPRACHE_FORMAL,
eatritt.Eintritt As Eintritt,
eatritt.Eintritt As registered,
now() as activated,
'ProM' As Source,
eatritt.Austritt As deactivated,
MITGLIED.MITGLNR As pmdbID

FROM EATRITT INNER JOIN MITGLIED ON EATRITT.MITGLNR = MITGLIED.MITGLNR 
Where EATRITT.OrgID=1 AND EmailP is not null and emailp like '*@*' AND (Mitglied.Newsletter > 'N' OR Mitglied.Newsletter < 'N')

UNION ALL Select 

EmailG As email,Vorname as Firstname, [Name] as Lastname,Geburtstag, Geschlecht ,Ausweisnr As Mitgliedsnummer, 
Switch(Geschlecht = 'M', 'Lieber', Geschlecht = 'W', 'Liebe') As ANSPRACHE_FREUNDLICH, 
Switch(Geschlecht = 'M','Sehr geehrter Herr', Geschlecht = 'W', 'Sehr geehrte Frau') As ANSPRACHE_FORMAL,
eatritt.Eintritt As Eintritt,
eatritt.Eintritt As registered,
now() as activated,
'ProM' As Source,
eatritt.Austritt As deactivated,
MITGLIED.MITGLNR As pmdbID

FROM EATRITT INNER JOIN MITGLIED ON EATRITT.MITGLNR = MITGLIED.MITGLNR 
Where EATRITT.OrgID=1 AND EmailG is not null and emailg like '*@*' AND   (Mitglied.Newsletter > 'N' OR Mitglied.Newsletter < 'N')
ORDER BY lastname;

Was kann ich bei der Wehere Klausel verbessern? Warum baue ich mir da einen Fehler ein? 

Leider ergibt das mit der Ergänzung um N gar kein Ergebnis. ALso das Ergebnis ist Nix.

__________________

Gruß Matthias
magic1708 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.05.2018, 08:28   #8
ebs17
MOF Guru
MOF Guru
Standard

Zitat:

Leider ergibt das mit der Ergänzung um N gar kein Ergebnis.

Ein leeres Recordset könnte/sollte daran liegen, dass es vermutlich keinen Inhalt in Mitglied.Newsletter gibt, der genau N lautet.

Rechnen ist, wenn man 1 und 1 zusammenzählen kann.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.05.2018, 08:35   #9
magic1708
Threadstarter Threadstarter
MOF Koryphäe
MOF Koryphäe
Standard

Also in der Spalte steht schon N drine,

Siehe Foto.

Es soll aber alles OHNE N anzeigen !
Angehängte Grafiken
Dateityp: jpg Zwischenablage01.jpg (3,0 KB, 10x aufgerufen)

__________________

Gruß Matthias
magic1708 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.05.2018, 08:48   #10
ebs17
MOF Guru
MOF Guru
Standard

Ach ja, wir haben ja eine Logikumkehr. Wo N drinsteht, wird weggefiltert, NULL wird sowieso weggefiltert, der Hinweis in #4 war jetzt nicht nur Smalltalk oder Auffüllung von leeren Räumen.
Was bleibt da übrig für eine Anzeige?

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.05.2018, 08:49   #11
el_gomero
MOF Koryphäe
MOF Koryphäe
Standard

Moin,

probier mal

Code:

...AND nz(Tabelle.X) <> 'N'

__________________

Gruß
Jürgen
el_gomero ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.05.2018, 08:55   #12
Nouba
MOF Guru
MOF Guru
Standard

Nun, bei der EMail könnte man auf das Not Is Null-Kriterium durchaus verzichten, denn wenn mindestens ein @ darin vorkommen muss, ist der Eintrag zwangsläufig auch Nicht Null. Beim Newsletter soll hingegen angezeitgt werden, was kleiner N oder was größer N oder was Null ist - die letzte Bedingung unterschlägt Deine Abfrage.

PS: auch Jürgens Tipp tötet garantiert eine Indexverwendung bei Newsletter - aber vielleicht gibt's den ja auch gar nicht.
Nouba ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.05.2018, 08:55   #13
fraeser
MOF Meister
MOF Meister
Standard

Stehen in der Spalte Mitglied.Newsletter noch andere Werte außer 'N'?

__________________

Gruß, Jan

Zitat:

Programmieren und Microsoftail: "Gestern stand ich noch am Abgrund.....heute bin ich einen Schritt weiter....!"

fraeser ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.05.2018, 09:09   #14
magic1708
Threadstarter Threadstarter
MOF Koryphäe
MOF Koryphäe
Standard

ich hoffe die Frage in 4 richtig verstanden zu haben.

Es ist in dieser Mitglieder Tabelle jeweils ein Feld für Private Mail und Geschäftliche Mail, daher der Union.

Es sollen aber nur Datensätze kommen wo das Feld beschrieben ist und eigentlich ne Mail Adresse drin steht, folglich am einfachsten ein @ Zeichen.

Würde es dann reichen nur nach dem @ Zeichen zu schauen und not null raus zunehmen? Die Abfrage funktioniert so aber korrekt.


Wozu das N ... Ich exportiere die o.g. Abfrage per SOAP API an einen Newsletter Dienstleister. Bei dem kann es aber vorkommen, das Mails nicht durchgehen ( Bounce) und oder sich User abmelden ( inactive) daher lasse ich mir über eine 2 SOAP Api alle Adressen bzw pmdbID als Fremdschlüssel zurückgeben um dann mit einem Update in das Feld Newsletter ein N zu setzten.
Die Datenbankstruktur (externer Anbieter) nutzt J und N für solche Fälle keine Booleschen Felder.

Aktuell steht nichts ausser N in den Feldern. Was wäre aber wenn das N mal wegfällt dann ist das Feld nicht mehr Null sondern '' ? Richtig? Daher bin ich von dem Gedanken auf Null zu prüfen weg.

Falls doch irgendwann mal was anderes in dem Feld steht ausser N würde ich halt gern N ausschliessen.

__________________

Gruß Matthias
magic1708 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.05.2018, 11:59   #15
magic1708
Threadstarter Threadstarter
MOF Koryphäe
MOF Koryphäe
Standard

Habe ich nun beunabsichtigt für Verwirrung gesorgt?

mein Problem mit N Ausschluss existiert noch....

__________________

Gruß Matthias
magic1708 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.