Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
SQL Code verschachteln
zurück: Summe von Zeitfeld falsch weiter: Fragen zu einer Berechnung Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
littlejohn
VBA-Bastler


Verfasst am:
19. Sep 2012, 11:39
Rufname:
Wohnort: Erfurt

SQL Code verschachteln - SQL Code verschachteln

Nach oben
       Version: Office 2010

Ich komme mit meinem SQL Code nicht mehr weiter und hoffe auf Eure tollen Tipps und Ideen. Ich habe eine vereinfachte Datenbank der folgenden Form. Der Einfachheit halber hier ohne sekundäre Tabellen für Personen und Kategorie.

tblMain:
MainID..........Person.............Datum..............Kategorie
1..................Name1.............01.02.2010.......1
2..................Name2.............01.05.2011.......2
3..................Name1.............20.07.2011.......1
4..................Name2.............01.09.2011.......1
5..................Name1.............01.05.2012.......2

Jetzt möchte ich einen Bericht erstellen in dem steht wieviel Prozent im Jahr 2011 von der Kategorie 1 sind. Das kann ich wie folgt umsetzen:
Code:
SELECT Count(MainID)/(SELECT Count(MainID)
                      FROM   tblMain
                      WHERE  Datum Between #1/1/2011# And #12/31/2011#) AS Kategorie1
FROM   tblMain
WHERE  Kategorie=1
AND    Datum Between #1/1/2011# And #12/31/2011#;
Der Code liefert wie gewünscht:
Abfrage:
Kategorie1
0,66

Jetzt würde ich gern in der gleichen Abfrage noch nach Kategorie 2 fragen. Aber ich weiß nicht wie ich den SQL Code umschreiben muss um das zu bekommen, da die HauptSelectAbfrage sich ja auf Kategorie=1 bezieht.

rauskommen sollte sowas wie:
Kategorie1....Kategorie2
0,66............0,33

Habt ihr eine Idee?
MiLie
kein Office- VBA- Programmierer


Verfasst am:
19. Sep 2012, 18:40
Rufname: Micha
Wohnort: Chemnitz


AW: SQL Code verschachteln - AW: SQL Code verschachteln

Nach oben
       Version: Office 2010

Hallo,

als Ansatz(ungetestst)
Code:
SELECT   Count(MainID)/(SELECT Count(MainID)
                        FROM   tblMain AS T2
                        WHERE  Year(Datum)=2011) AS Prozentanteil
FROM     tblMain AS T1
WHERE    Year(Datum)=2011
GROUP BY Kategorie
somit hättest du jede Kategorie aber als
Kategorie1 0,66
Kategorie2 0,33
...

liese sich ggf. in einer Kreuztabelle in dein gewünschtes Format bringen. Wobei ich dieses Format belassen würde, lässt sich besser weiterverwenden.

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
littlejohn
VBA-Bastler


Verfasst am:
20. Sep 2012, 11:24
Rufname:
Wohnort: Erfurt

AW: SQL Code verschachteln - AW: SQL Code verschachteln

Nach oben
       Version: Office 2010

Danke MiLie,

das klappt ganz prima. Die Idee, die Abfragen nach den einzelnen Kategorien mit der GROUP BY - Funktion für alle Kategorien zu machen ist ganz gut und spart mir die Frage wie man das sinnvoll verschachteln könnte.
Jetzt habe ich noch zusätzlich nach Person gruppiert, was kein Problem für die Abfrage darstellt.
Code:
SELECT   Count(MainID)/(SELECT Count(MainID)
                        FROM   tblMain AS T2
                        WHERE  Year(Datum)=2011) AS Prozentanteil,
         Kategorie, Person
FROM     tblMain AS T1
WHERE    Year(Datum)=2011
GROUP BY Kategorie,Person
Jetzt will ich das ganze in einen Bericht packen und habe einen:
Zitat:
GROUP BY Abschnitt auf mehreren Ebenen ist in einer Unterabfrage nicht zulässig!
-Fehler erzeugt. Sad
Ich habe gelesen, dass Access hier nicht mehr leisten kann, aber ich bin doch sicher nicht der einzige, der einen Bericht auf so einer Abfrage basierend erstellen will oder? Was mach ich denn da? Bin für jede Hilfe oder Erklärung diesbezüglich dankbar.

VG
MiLie
kein Office- VBA- Programmierer


Verfasst am:
21. Sep 2012, 22:45
Rufname: Micha
Wohnort: Chemnitz

AW: SQL Code verschachteln - AW: SQL Code verschachteln

Nach oben
       Version: Office 2010

Hallo,

der Bericht selbst erlaubt auch Gruppierungen, hat dahingehend sogar mehr Möglichkeiten. Lasse die Gruppierung weg und Gruppiere im Bericht.

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
littlejohn
VBA-Bastler


Verfasst am:
01. Okt 2012, 09:04
Rufname:
Wohnort: Erfurt

AW: SQL Code verschachteln - AW: SQL Code verschachteln

Nach oben
       Version: Office 2010

Hallo Micha,

vielen Dank für den Tipp. Im Bericht zu gruppieren ist eine interessante Methode. Ich habe meinen Bericht jetzt ohne Gruppierung erstellt und wollte dann in der Entwurfsansicht gruppieren. (Ich denke so meintest du das auch!) Aber wenn ich nach dem Einstellen einer Gruppierung auf Seitenansicht gehe, kommt die gleiche Fehlermeldung
Zitat:
GROUP BY Abschnitt auf mehreren Ebenen ist in einer Unterabfrage nicht zulässig!
Sad

VG
KlausMz
Moderator Access


Verfasst am:
01. Okt 2012, 09:40
Rufname:
Wohnort: Irgendwo in der Pfalz


AW: SQL Code verschachteln - AW: SQL Code verschachteln

Nach oben
       Version: Office 2010

Hallo,
die Abfrage selbst darf nicht gruppiert sein. Im Berichtsentwurf werden die gewünschten Gruppierungen eingefügt. Das hat nichts mit der Abfrage zu tun.

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
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: Differenz bilden mit SQL 1 Walter 9121 20. Aug 2005, 16:56
jens05 Differenz bilden mit SQL
Keine neuen Beiträge Access Tabellen & Abfragen: Feldwert ergänzen per SQL 16 grub 2243 27. Jul 2005, 16:50
Willi Wipp Feldwert ergänzen per SQL
Keine neuen Beiträge Access Tabellen & Abfragen: [SQL] GROUP BY mit mehreren Untergruppen? 1 marcos_ 1650 07. Apr 2005, 11:05
marcos_ [SQL] GROUP BY mit mehreren Untergruppen?
Keine neuen Beiträge Access Tabellen & Abfragen: SQL - Anzahl Ergebnissätze begrenzen, z.B erste 1000 Sätze 2 Spoldo 18401 17. März 2005, 17:25
Spoldo SQL - Anzahl Ergebnissätze begrenzen, z.B erste 1000 Sätze
Keine neuen Beiträge Access Tabellen & Abfragen: Access ändert meine SQL Strings 1 Nil 608 24. Feb 2005, 13:25
lothi Access ändert meine SQL Strings
Keine neuen Beiträge Access Tabellen & Abfragen: Zeitspanne bei Datumswerten mit SQL filtern...? 3 DoMe 4372 15. Feb 2005, 17:57
Willi Wipp Zeitspanne bei Datumswerten mit SQL filtern...?
Keine neuen Beiträge Access Tabellen & Abfragen: SQL Gruppierung -AXP 2 nepokat 601 03. Feb 2005, 08:46
nepokat SQL Gruppierung -AXP
Keine neuen Beiträge Access Tabellen & Abfragen: Access SQL auskommentieren 2 excalibur 7156 21. Nov 2004, 20:24
excalibur1 Access SQL auskommentieren
Keine neuen Beiträge Access Tabellen & Abfragen: SQL Abfrage mit 2 Where??? 2 NewNewbie 1858 18. Nov 2004, 16:40
NewNewbie SQL Abfrage mit 2 Where???
Keine neuen Beiträge Access Tabellen & Abfragen: Wenn-Dann-Sonst in SQL??? mit SQL-String :-) 11 SCHNEEMANN 7515 20. Okt 2004, 16:33
SCHNEEMANN Wenn-Dann-Sonst in SQL??? mit SQL-String :-)
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Access Tabellen & Abfragen: Wenn-Dann-Sonst in SQL??? 2 SCHNEEMANN 998 18. Okt 2004, 17:26
Willi Wipp Wenn-Dann-Sonst in SQL???
Keine neuen Beiträge Access Tabellen & Abfragen: SQL - Abfrage ob ein Wert in der Tabelle enthalten ist 1 notausgang 1301 23. Sep 2004, 09:42
stpimi SQL - Abfrage ob ein Wert in der Tabelle enthalten ist
 

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