collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 66
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14070
  • stats Beiträge insgesamt: 67529
  • stats Themen insgesamt: 9099
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Abfragekriterium zu komplex ????  (Gelesen 7109 mal)

Offline 69bruno

  • Heimwerker
  • Access-Profi
  • **
  • Beiträge: 262
Re: Abfragekriterium zu komplex ????
« Antwort #15 am: Oktober 16, 2012, 13:40:27 »
Aber da tut sich mir eine neue Frage auf,
mir wurde mal beigebracht, dass Abfragen nur Felder berücksichtigen, die im Abfragegenerator aus der Ursprungstabelle in die Abfragetabelle gezogen wurden.
Ich beobachte aber gerade, dass Felder vollkomen richtig berechnet werden, obwohl die zugrundeliegenden Felder nicht in die Abfrage als Feld eingefügt wurden. Sie werden zwar oben in den Tabellen angezeigt, die der Abfrage zugrunde liegen, ich habe sie aber nicht in die Abfragetabelle hinuntergezogen....ist das normal ?
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23445
Re: Abfragekriterium zu komplex ????
« Antwort #16 am: Oktober 16, 2012, 13:54:36 »
Hallo,


ja, das ist normal,  die Spalten in der Abfrage sorgen ja nur für die Anzeige der felder, sofern "Anzeigen" angehakt ist.  Nichtsdestotrotz kann auf die Tabellenfelder Bezug (im SQL-Statement) genommen werden, ohne dass sie in der Select-Liste auftauchen müssen.


"Oder ich addiere in der 5. Abfrage so"

klar geht das auch, aber damit umgehst Du den Vorteil einer Funktion, in der Du das Ganze nur EINMAL machen mußt und nicht an all den Stellen, an denen die Funktion aufgerufen wird.






Was soll


Ausdr1: NZ([Soll1];Int(0)) + NZ([Soll2];Int(0))

für einen Sinn haben?

Eine 0 hat schon in VBA den Datentyp Integer( bzw. Long) und braucht nicht nochmal explizit in denselben Datentyp konvertiert werden.

Offline 69bruno

  • Heimwerker
  • Access-Profi
  • **
  • Beiträge: 262
Re: Abfragekriterium zu komplex ????
« Antwort #17 am: Oktober 16, 2012, 14:21:05 »
Ok, werde mir die Funktion ansehen.... weiss noch nicht genau, wo ich das unterbringe, aber ich werde sehen.

Int(0) hat sich eingeschlichen. Bei den ersten Versuchen bekam ich ein Ergebnis jenseits der Billionengrenze und da wollte ich sichergehen, dass die "0" auch als 0 gehandelt wird. Seitdem schreibe ich es so fort..........
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If
 

Offline 69bruno

  • Heimwerker
  • Access-Profi
  • **
  • Beiträge: 262
Re: Abfragekriterium zu komplex ????
« Antwort #18 am: Oktober 16, 2012, 14:25:59 »
Ups,

habe mir die Funktion angesehen, aber ........
Die Funktion wird aufgerufen (aus der Abfrage), wenn ein Datensatz kommt, der die anderen Kriterien erfüllt und rechnet dann die Werktage aus.

Aber in dem vorliegenden Fall habe ich ja keinen Datensatz, da die anderen Kriterien nicht erfüllt werden. Also wird sie ja gar nich aufgerufen.....
Ausser für den Bericht brauche ich die Solltage nicht, daher werden die auch nicht in irgendeine Tabelle gespeichert, sondern nur für den abgefragten Zeitraum berechnet........
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23445
Re: Abfragekriterium zu komplex ????
« Antwort #19 am: Oktober 16, 2012, 14:34:41 »
Hallo,

???


"Aber in dem vorliegenden Fall habe ich ja keinen Datensatz, da die anderen Kriterien nicht erfüllt werden. Also wird sie ja gar nich aufgerufen...."


Wenn die Funktion nicht aufgerufen wird, wieso soll es dann ein leeres Feld geben?

Offline 69bruno

  • Heimwerker
  • Access-Profi
  • **
  • Beiträge: 262
Re: Abfragekriterium zu komplex ????
« Antwort #20 am: Oktober 16, 2012, 15:01:05 »
Haha,

da hast Du mich voll erwischt.......

Ist natürlich kein leeres Feld......
sondern, da die Abfrage ja nach Geschlecht sortiert, ein Abfrageergebnis, mit nur einer Ergebniszeile und nicht mit zwei, wie bei den anderen.......

Das Feld ist nicht leer, es fehlt einfach.....

Sry für die ungenaue Ausdrucksweise  8)

Obwohl..... ich hatte das auch schon als Einzelabfrage, die nur ein Feld als Ergebnis liefern sollte. Und da war dann tatsächlich ein leeres Feld....auch wenn kein Datensatz die Kriterien erfüllte.
« Letzte Änderung: Oktober 16, 2012, 15:04:50 von 69bruno »
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23445
Re: Abfragekriterium zu komplex ????
« Antwort #21 am: Oktober 16, 2012, 20:20:41 »
Hallo,


ich wiederhole:

Zitat
Ich denke mal, da wäre es angebracht, sich über den Tabellenaufbau (nochmal)  Gedanken zu machen

Vermutlich ist da zuviel verkorkst....


Wenn ein Feld "fehlt" (bzw. fehlen kann) , ist das an sich nicht in Ordnung und ist eine Vergewaltigung der Struktur.   Sorg dafür, dass immer ALLE Felder existieren, auch wenn sie "NULL enthalten"   (z. B. durch Verwendung von Alias-Namen) , dann fiele wenigstens dieser Stolperstein weg.



Offline 69bruno

  • Heimwerker
  • Access-Profi
  • **
  • Beiträge: 262
Re: Abfragekriterium zu komplex ????
« Antwort #22 am: Oktober 17, 2012, 07:05:43 »
Hm,
da verstehe ich das Problem nicht.
Es gibt kein Tabellenfeld, dass "fehlt". Es gab nur ein Abfragefeld, das kein Ergebnis hatte. Dadurch wurde in einem gruppierten Abfrageergebnis die Zeilenanzahl von 2 auf 1 reduziert.

Es ist doch gerade Aufgabe einer Abfrage, auch nach Datensätzen zu suchen, die keine Kriterien erfüllen. Die könnte man sich postitiv anzeigen lassen. Aber sie negativ einfach wegzulassen und dann kein Abfrageergebnis zu bekommen, ist doch wohl gleichwertig.

Oder sehe ich das falsch ?
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23445
Re: Abfragekriterium zu komplex ????
« Antwort #23 am: Oktober 17, 2012, 09:08:27 »
Hallo,

eine Abfrage (SQL-Statement) ist doch nicht prozedural, sondern deklarativ.. D. H. es wird eine Aufgabe (für die Datenauslesung)  nur BESCHRIEBEN , der eigentliche Ausführungsvorgang ist uninteressant und geschieht im Hintergrund. Insofern liefert eine Abfrage genau die Datensätze, die dem angegebenen Kriterium entsprechen..... und nicht (auch) die, die gar nicht gewünscht sind.


Zitat
Dadurch wurde in einem gruppierten Abfrageergebnis die Zeilenanzahl von 2 auf 1 reduziert.


Eine gruppierende Abfrage liefert eben eine Zusammenfassung der Datensätze. die den Gruppierungsbedingungen entsprechen, in Form EINES Datensatzes...  Dann ist ein Zugriff auf die Einzeldatensätze einer Gruppe in derselben Abfrage nicht mehr möglich.  Dazu ist dann eine weitere normale Abfrage nötig, die die Gruppenabfrage als Kriterium(swerte-Lieferant) verwendet.


Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 922
Re: Abfragekriterium zu komplex ????
« Antwort #24 am: Oktober 17, 2012, 09:29:03 »
Es ist doch gerade Aufgabe einer Abfrage, auch nach Datensätzen zu suchen, die keine Kriterien erfüllen.Für Dich wäre die Welt in Ordnung, wenn man zwar bspw. einen Ortsfilter auf Berlin setzt, aber trotzdem die ganze Welt gezeigt wird?
Wenn das so wäre, ginge die Welt für viele andere unter.

Eine Abfrage/SQL-Anweisung macht genau das, was ihre Definition (die SQL-Anweisung) beinhaltet. Lege also Deine Wünsche so in die Anweisung, dass die Jet-Engine Dich versteht, und dann wird sie im Rahmen ihrer Möglichkeiten und der vorhandenen Daten Dir gnadenlos zu Dienste sein.

MfGA
ebs
Mit freundlichem Glück Auf!

Eberhard
 

Offline 69bruno

  • Heimwerker
  • Access-Profi
  • **
  • Beiträge: 262
Re: Abfragekriterium zu komplex ????
« Antwort #25 am: Oktober 17, 2012, 10:06:23 »
So meine ich das doch gar nicht.  :-\
Ich lasse mir eben nicht die ganze Welt anzeigen.
Aber neben der Fragestellung, ich bleibe mal bei Orten, wer alles in Berlin sitzt, kann ich doch auch gruppiert fragen(!), wer alles in Frankfurt sitzt (Ausgabe nur die Anzahl der PersonenID's). Wenn dann für Frankfurt das Ergebnis "leer" ist, weiss ich doch, dass es niemanden in Frankfurt gibt.

Natürlich frage ich positiv, wieviele Männer und Frauen (Gruppierung) haben unterjährig ihr Arbeitszeitmodell gewechselt.

Da es aber keinen Mann gibt, der dieses Kriterium erfüllte, lieferte die Abfrage nur eine Gruppenzeile, nämlich für Frauen. Und das "fehlende" Abfragefeld für die Anzahl der Männer konnte ich nicht in eine Addition fassen.

Ich suche nicht explizit nach nicht kriterienerfüllenden Datensätzen. Aber die logische Umkehrfolge des Nichterfüllens der Abfragekriterien liefert mir die Gewissheit, da gibt es keinen. Und das will ich eben auch wissen.

Und eine gruppierte Abfrage liefert nicht nur EINEN Datensatz, sondern mehrere, wenn es mehrere Gruppen gibt.
Würde ich männlich, weiblich,zwitter,asexuell als Gruppierung einrichten, hätte ich vier Datensätze im Ergebnis, wenn es zu jedem einen Eintrag in der DB gäbe.....
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23445
Re: Abfragekriterium zu komplex ????
« Antwort #26 am: Oktober 17, 2012, 11:53:50 »
Hallo,


Zitat
Und eine gruppierte Abfrage liefert nicht nur EINEN Datensatz, sondern mehrere, wenn es mehrere Gruppen gibt.
Würde ich männlich, weiblich,zwitter,asexuell als Gruppierung einrichten, hätte ich vier Datensätze im Ergebnis, wenn es zu jedem einen Eintrag in der DB gäbe.....

Das stimmt und Du hast mich missverstanden..     :)    Ich meinte genau dies:


Wenn es 50 DS  mit "männlich" und 25 mit "weiblich" gibt, erzeugt die Gruppenabfrage genau einen DS für jede Gruppe...


Zitat
Aber die logische Umkehrfolge des Nichterfüllens der Abfragekriterien liefert mir die Gewissheit, da gibt es keinen. Und das will ich eben auch wissen.



Naja, da kannst Du doch auch abfragen, welche DS den Abfragekriterien nicht entsprechen.



z. B. select ......  where xyz not in (Select xyz  .....   where abc='irgendwas')

oder alternativ auch mit  Exists

oder mittels left Join und Kriterium "is Null" bei einem "nicht existierenden" Feld.

http://www.donkarl.com/?FAQ3.16

Offline 69bruno

  • Heimwerker
  • Access-Profi
  • **
  • Beiträge: 262
Re: Abfragekriterium zu komplex ????
« Antwort #27 am: Oktober 17, 2012, 12:37:36 »
Da könnte man ja glatt Plausibilitätsprüfungen draus machen......

Da könnte man doch prüfen, ob die Anzahl der erfüllenden und der nichterfüllenden Datensätze jedes Kriteriums die Gesamtzahl der Datensätze wiedergibt......

Vielleicht sollte ich mir das doch überlegen, auch die DS abzufragen, die nicht die Kriterien erfüllen.......  ::)
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23445
Re: Abfragekriterium zu komplex ????
« Antwort #28 am: Oktober 17, 2012, 12:51:08 »
Hallo,

Zitat
Da könnte man doch prüfen, ob die Anzahl der erfüllenden und der nichterfüllenden Datensätze jedes Kriteriums die Gesamtzahl der Datensätze wiedergibt......


und was würde Dir das für Erkenntnisse bringen ?

Da kannst Du genauso prüfen, ob die Addition der Höhe des Wasserstandes in Deiner Regentonne mit der Höhe der darüber liegenden Luftsäule tatsächlich auch die Höhe der Regentonne ergibt...  ::)

Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 922
Re: Abfragekriterium zu komplex ????
« Antwort #29 am: Oktober 17, 2012, 13:00:44 »
Zitat
Da es aber keinen Mann gibt, der dieses Kriterium erfüllte, lieferte die Abfrage nur eine Gruppenzeile, nämlich für Frauen.
Wenn das Ergebnis aber auch die Männer anzeigen soll, obwohl es da keine Datensätze gemäß Verknüpfung und Filterung  zum Gruppieren gibt, dann hast Du Deine Abfrage falsch formuliert.

Dann musst Du also erst eine vollständige Menge im Sinne der späteren Auswertung erzeugen, und dann erst kannst Du Gruppieren/Aggregieren oder irgendwie anders auswerten.

MfGA
ebs
« Letzte Änderung: Oktober 17, 2012, 13:15:29 von ebs17 »
Mit freundlichem Glück Auf!

Eberhard