Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Richtig zählen ohne referentielle Integrität
Gehe zu Seite 1, 2  Weiter
zurück: Spalte links von einem Zeichen ( , ) ausgeben weiter: Spalten nebeneinander ausgeben 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
Musicfreak666
Im Profil kannst Du frei den Rang ändern


Verfasst am:
17. März 2014, 21:52
Rufname:

Richtig zählen ohne referentielle Integrität - Richtig zählen ohne referentielle Integrität

Nach oben
       Version: Office 2013

Hallo zusammen
Ich weiss mir nicht mehr zu helfen: Möchte gerne die Datensätze (ID, Primärschlüssel aktiviert) in einer Tabelle A mittels Abfrage zählen. Die genannte Tabelle A ist mit einer andern Tabelle B verbunden, allerdings handelt es sich um eine Verindung ohne referentielle Integrität, da in Tabelle B auch einträge gemacht werden sollen ohne Verbindung zu Tabelle A.
Nun versuche ich mittels COUNT(IIF(*,*,0)) die Einträge in Tabelle A zu zählen, allerdings zählt Access die Menge an Einrägen in Tabelle B.
Wie kann ich das Zählen auf eine bestimmte Tabelle beschränken und die Verbindung ignorieren?
Vielen Dank für eure Hilfe.
MiLie
kein Office- VBA- Programmierer


Verfasst am:
17. März 2014, 22:02
Rufname: Micha
Wohnort: Chemnitz


AW: Richtig zählen ohne referentielle Integrität - AW: Richtig zählen ohne referentielle Integrität

Nach oben
       Version: Office 2013

Hallo

einfach mit
Code:
Count(ID) as DSAnzahl From Tabelle
soll es Bestandteil einer gejointen Abfrage sein, wäre es sinnvoll die Abfrage zu zeigen.
_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
Musicfreak666
Im Profil kannst Du frei den Rang ändern


Verfasst am:
17. März 2014, 22:18
Rufname:

AW: Richtig zählen ohne referentielle Integrität - AW: Richtig zählen ohne referentielle Integrität

Nach oben
       Version: Office 2013

Hallo MiLie
Ja, es handelt sich (Tabllen sind verbunden) zum eine gejointe Abfrage, vgl. unten!
Dein Vorschalg hat nicht funktioniert. Access zählt immer noch in der falschen Tabelle :/
Code:
SELECT   A.Kategorie, Count(A.Kategorie) AS ZaehlenKategorie, Count(B.FI) AS ZaehlenFI
FROM     A
         INNER JOIN B
         ON A.ID = B. FI
GROUP BY A.Kategorie;
Danke für weitere Hilfe.
Nouba
nicht ganz unwissend :)


Verfasst am:
17. März 2014, 22:34
Rufname:
Wohnort: Berlin

AW: Richtig zählen ohne referentielle Integrität - AW: Richtig zählen ohne referentielle Integrität

Nach oben
       Version: Office 2013

Hallo,

am besten zeigst Du uns einige wenige Beispieldatensätze aus A und B in Textform und stellst darunter dar, was Du als Ziel erwartest.

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
Musicfreak666
Im Profil kannst Du frei den Rang ändern


Verfasst am:
17. März 2014, 22:44
Rufname:


AW: Richtig zählen ohne referentielle Integrität - AW: Richtig zählen ohne referentielle Integrität

Nach oben
       Version: Office 2013

Tabelle A
ID Kategorie
-- --
1 KatA
2 KatB
3 KatC

Tabelle B
FI Jahr
-- --
1 2013
1 2014
2 2014
2 2011
5 2007

Abfrage zurzeit
Count(A.Kategorie) ergibt 2 x A, 2 x B
Abfrage soll, nur in Tabelle A zählend
Count(A.Kategorie) ergibt 1 x A, 1 x B, 1 x C
Nouba
nicht ganz unwissend :)


Verfasst am:
17. März 2014, 23:27
Rufname:
Wohnort: Berlin

AW: Richtig zählen ohne referentielle Integrität - AW: Richtig zählen ohne referentielle Integrität

Nach oben
       Version: Office 2013

Hallo,

dafür kannst Du einfach eine Unterabfrage verwenden. SELECT ..., (SELECT Count(*) FROM A) AS AnzVonA, ... FROM ...

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
Gast



Verfasst am:
17. März 2014, 23:28
Rufname:

AW: Richtig zählen ohne referentielle Integrität - AW: Richtig zählen ohne referentielle Integrität

Nach oben
       Version: Office 2013

Code:
SELECT Count(*) AS DSAnzahl
FROM   A
Die Anzahl der Primärschlüssel in einer Tabelle ist die Anzahl der Datensätze.
Dabei einen JOIN auf eine andere Tabelle zu verwenden ist falsch.
  1. Es treten durch mehrere Fremdschlüssel in B auf einen Primärschlüssel in A Datenvervielfältigungen und damit falsche Anzahlen auf.
  2. Bei fehlenden Fremdschlüsseln in B zu Primärschlüsseln in A werden entsprechende primärschlüssel nicht berücksichtigt.
    Beide Effekte treten auch bei nicht eingestellter referentieller Integrität auf, weil die lediglich sicherstellt, dass es zu jedem Fremdschlüssel einen Primärschlüssel gibt.
  3. Das JOINEN der Tabellen ist Aufwand und kostet Zeit (bei dir vielleicht nicht spürbar) und schon daher, weil nicht notwendig, zu vermeiden.
Zitat:
Abfrage soll, nur in Tabelle A zählend
Nimm Deine Aufgabe wörtlich.
MiLie
kein Office- VBA- Programmierer


Verfasst am:
17. März 2014, 23:32
Rufname: Micha
Wohnort: Chemnitz

AW: Richtig zählen ohne referentielle Integrität - AW: Richtig zählen ohne referentielle Integrität

Nach oben
       Version: Office 2013

Hallo,
Code:
SELECT  A.Kategorie,
        (SELECT Count(Kategorie)
         FROM   A
         WHERE  ID = T2.FI) AS ZaehlenKategorie,
        (SELECT Count(FI)
         FROM   B
         WHERE  Fi = T1.ID) AS ZaehlenFI
FROM     A AS T1
         INNER JOIN B AS T2
         ON A.ID = B. FI
GROUP BY A.Kategorie
teste mal
_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
MiLie
kein Office- VBA- Programmierer


Verfasst am:
17. März 2014, 23:34
Rufname: Micha
Wohnort: Chemnitz

AW: Richtig zählen ohne referentielle Integrität - AW: Richtig zählen ohne referentielle Integrität

Nach oben
       Version: Office 2013

Hallo,

dein Beispiel ergibt keinen Datensatz der KatC. Dazu müsstest Du eine outer-join nehmen.

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
MiLie
kein Office- VBA- Programmierer


Verfasst am:
17. März 2014, 23:43
Rufname: Micha
Wohnort: Chemnitz

AW: Richtig zählen ohne referentielle Integrität - AW: Richtig zählen ohne referentielle Integrität

Nach oben
       Version: Office 2013

Hallo,

irgendwie ist dein Anliegen wertfrei, sollte nicht ohnehin jede Kategorie nur einmal vorkommen?

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
Musicfreak666
Im Profil kannst Du frei den Rang ändern


Verfasst am:
18. März 2014, 00:20
Rufname:

AW: Richtig zählen ohne referentielle Integrität - AW: Richtig zählen ohne referentielle Integrität

Nach oben
       Version: Office 2013

Vielen Dank für eure Antworten!

@ Nouba: Funktioniert fast: Es wird nicht die Anzahl pro Kategorie sondern die Gesamtanzahl über alle Kategorien errechnet und in jeder Kategorie eingetragen, dasselbe Ergebnis lässt sich auch ohne Subquery mit DCOUNT() erzielen.
Eine Idee wie man die Zahl pro Kategorie ausgeben könnte?

@ Gast: Stimmt, das Problem ist nicht die referentielle Integrität. Dass auf einen Datenbankeintrag in einer Tabelle viele zugehörige Datensätze aus einer anderen Tabelle kommen ist keine Seltenheit und lässt sich auch in meinem Fall nicht vermeiden. Der Join ist also nötig.

@ Micha: Leider funktioniert deine Abfrage nicht: "Syntax error in JOIN operation".
Was meinst du mit Wertefrei? Es handelt sich nur um ein Beispiel, dachte das wäre einfacher.
Nouba
nicht ganz unwissend :)


Verfasst am:
18. März 2014, 00:38
Rufname:
Wohnort: Berlin

AW: Richtig zählen ohne referentielle Integrität - AW: Richtig zählen ohne referentielle Integrität

Nach oben
       Version: Office 2013

Hallo Musicfreak666,

anscheinend verstehe ich die Aufgabenstellung nicht, oder Dein Beispiel ist unschlüssig.

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
Gast



Verfasst am:
18. März 2014, 01:04
Rufname:

AW: Richtig zählen ohne referentielle Integrität - AW: Richtig zählen ohne referentielle Integrität

Nach oben
       Version: Office 2013

Zitat:
Es handelt sich nur um ein Beispiel ...
Manche abstrahieren sich zu Tode und übertragen ihre eigene Verwirrung auf andere.
Musicfreak666
Im Profil kannst Du frei den Rang ändern


Verfasst am:
18. März 2014, 01:20
Rufname:

AW: Richtig zählen ohne referentielle Integrität - AW: Richtig zählen ohne referentielle Integrität

Nach oben
       Version: Office 2013

Hallo Nouba
Anbei eine Beispieldatei zum besseren Verständnis. Wenn du die Anzahl Kategorien der Tabelle Kunden mit den Resultaten der Abfrage vergleichst, wird Access' Seitensprung über die Verbindung ersichtlich.



Beispiel.zip
 Beschreibung:
Problem an einleuchtendem Beispiel verdeutlicht.

Download
 Dateiname:  Beispiel.zip
 Dateigröße:  20.07 KB
 Heruntergeladen:  7 mal

Gast



Verfasst am:
18. März 2014, 09:48
Rufname:


AW: Richtig zählen ohne referentielle Integrität - AW: Richtig zählen ohne referentielle Integrität

Nach oben
       Version: Office 2013

Zitat:
Access' Seitensprung
Mengenoperationen wie von SQL ausgeführt sind streng loisch und wiederholbar. Sprünge macht da jemand anders.

"die Anzahl Kategorien der Tabelle Kunden" ist etwas sehr anderes als "die Datensätze (ID, Primärschlüssel aktiviert) in einer Tabelle A".
Eine Lösung beginnt mit Klarheit über die Aufgabe.

Und nach wie vor würde man sich auf genau die Tabelle beschränken, wenn man Datensätze (wie auch immer) darin zählen will.
Eine Verknüpfung mit einer weiteren Tabelle kann und wird aus oben genannten Gründen zu Verfremdungen führen und daher mindestens für Zusatzaufwand sorgen.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 2
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: Verstoß gegen referenzielle Integrität 1 Gast 904 09. Okt 2007, 22:17
john795 Verstoß gegen referenzielle Integrität
Keine neuen Beiträge Access Tabellen & Abfragen: Update-Abfrage funktioniert nicht richtig 2 Kelley1995 507 05. Jul 2007, 16:00
Kelley1995 Update-Abfrage funktioniert nicht richtig
Keine neuen Beiträge Access Tabellen & Abfragen: Bestimmte Datensätze zählen - Problem 1 sambagold 506 23. März 2007, 23:23
Thomas2007 Bestimmte Datensätze zählen - Problem
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage: zählen ohne Doppelte 3 Mikla 1632 08. März 2007, 11:49
Mikla Abfrage: zählen ohne Doppelte
Keine neuen Beiträge Access Tabellen & Abfragen: ref. Integrität zw. versch. Anwendungen 1 Thorsten7 495 19. Feb 2007, 13:20
Nouba ref. Integrität zw. versch. Anwendungen
Keine neuen Beiträge Access Tabellen & Abfragen: Datensätze werden nicht richtig gefiltert 10 sandrolang 713 02. Okt 2006, 16:50
jens05 Datensätze werden nicht richtig gefiltert
Keine neuen Beiträge Access Tabellen & Abfragen: Standardwert richtig festlegen 13 daflowjoe 1022 12. Sep 2006, 14:45
rita2008 Standardwert richtig festlegen
Keine neuen Beiträge Access Tabellen & Abfragen: Verschiedene Datensätze einer Abfrage zählen 15 michasiebert 3960 07. Aug 2006, 10:26
Willi Wipp Verschiedene Datensätze einer Abfrage zählen
Keine neuen Beiträge Access Tabellen & Abfragen: Ist es möglich die Anzahl der Reihen zu zählen? 2 Andreas_04 2329 20. Jul 2006, 13:56
RRobert Ist es möglich die Anzahl der Reihen zu zählen?
Keine neuen Beiträge Access Tabellen & Abfragen: Zeichen und Buchstaben in Abfrage zählen 0 Transputor 1107 24. Mai 2006, 17:40
Transputor Zeichen und Buchstaben in Abfrage zählen
Keine neuen Beiträge Access Tabellen & Abfragen: zeilen einer tabelle zählen in vba 2 steveO 4351 16. Mai 2006, 13:09
Gast zeilen einer tabelle zählen in vba
Keine neuen Beiträge Access Tabellen & Abfragen: in einer Abfrage zählen 1 chaos 803 21. Apr 2006, 11:50
Willi Wipp in einer Abfrage zählen
 

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