Zurück   3DCenter Forum > Software-Hilfe Foren > Programmierung
Registrieren Hilfe Community Kalender Heutige Beiträge Suchen Uns unterstützen

Antwort
 
Themen-Optionen Ansicht
Alt 2013-01-28, 20:49:37   #1 (im Thread / einzeln)
Geldmann3
Avantgarde Member
 
Benutzerbild von Geldmann3
 
Registriert: 2009-05-05
Ort: Frankfurt am Main
Beiträge: 5.397
Smile MySQL Monate mit Anzahl der Bestellungen

Hi, mit den ganz fundamentalen Befehlen von MySL kenne ich mich ja aus, aber wir schreiben morgen eine Arbeit dazu, die ein bisschen weiteres Verständnis verlangt

Wir arbeiten wahrscheinlich mit der Nordwind Datenbank, und sollen uns beispielsweise alle Monate des Jahres 1997, jeweils mit der Anzahl eingegangener Bestellungen auflisten lassen.

Kann mir jemand erklären, wie das geht?

Um darauf einzugehen, was ich schon kann.
Mit Lektion1 werde ich schon problemlos fertig.

JAJA, bin voll der Noob.

ich würde mir ja alle Tutorien im Internet nochmal genüsslich zu Gemüte führen, wenn die Zeit bis morgen nicht etwas knapp wäre
(Ich war krank, als das durchgenommen wurde und hab gerade erst bemerkt, wie weit meine Klassenkameraden gekommen sind MIIIIST)

Sollte aber ja auch nicht so schwer sein, das beispielsweise nach Monaten zu sortieren, wenn man weiss wie...


Geändert von Geldmann3 (2013-01-28 um 20:54:24 Uhr)
Geldmann3 ist offline Computer-Informationen von Geldmann3 anzeigen   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2013-01-28, 21:32:01   #2 (im Thread / einzeln)
Matrix316
Ultimate Member
 
Benutzerbild von Matrix316
 
Registriert: 2001-05-13
Beiträge: 53.629
Matrix316 eine Nachricht über AIM schicken
Re: MySQL Monate mit Anzahl der Bestellungen

so ungefähr würde ich meinen
Code:
select count(Bestellnummer),MONTH(Bestelldatum)  from Bestellung group by MONTH(Bestelldatum) where YEAR(Bestelldatum) = 1997
Frage wäre ob bei 12 bestellten Einheiten aus der Details Tabelle die Anzahl der Bestellungen 1 oder 12 sein soll?

Dann wäre es eher sowas

Code:
select count(b.Anzahl),MONTH(Bestelldatum) from Bestellung a inner join Bestelldetails b on a.Bestellnr = b.Bestellnr group by MONTH(a.Bestelldatum) where YEAR(s.Bestelldatum) = 1997
Alles auf eigene Gefahr testen.

System: AMD Ryzen 9800X3D - NZXT Kraken X63 - Asus Strix B650E-F Wifi - 32 GB RAM G.Skill DDR5 6000 CL30 - XFX 7900XTX 24GB - Samsung 980 PRO 2 TB M2 - Sabrent SB-RKT4P 2 TB M2 - diverse andere Platten insgesamt 10 TB - NZXT C1200 Gold ATX 3.1

Geändert von Matrix316 (2013-01-28 um 21:39:41 Uhr)
Matrix316 ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2013-01-28, 22:36:29   #3 (im Thread / einzeln)
Geldmann3
Avantgarde Member
Threadstarter
 
Benutzerbild von Geldmann3
 
Registriert: 2009-05-05
Ort: Frankfurt am Main
Beiträge: 5.397
Re: MySQL Monate mit Anzahl der Bestellungen

Wir haben jetzt beispielsweise die Aufgabe: Lassen sie sich alle Orte auflisten, in denen Kunden wohnen und die Anzahl der dort wohnenden Kunden.

Ich würde schreiben

SELECT PLZ, Count(*) AS Anzahl
FROM Kunden
GROUP BY PLZ

stimmt das so?

Ich erinnere mich, dass wir im Unterricht PLZ beispielsweise in ' geschrieben hätten. Macht das einen Sinn?

Geldmann3 ist offline Computer-Informationen von Geldmann3 anzeigen   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2013-01-28, 22:46:29   #4 (im Thread / einzeln)
samm
Admiral Member
 
Registriert: 2008-08-03
Beiträge: 3.241
Re: MySQL Monate mit Anzahl der Bestellungen

Wenn du's in ' schreibst, wird es ein String, d.h.

Select 'PLZ'...

würde dir einfach das Wort PLZ rausschreiben MySQL bietet allerdings die eklige Möglichkeit, einen Akzent um `Feldnamen` herum zu verwenden (analog z.B. zu den [Klammern] beim SQL Server), was dazu dienen kann, Leerzeichen oder Kommata in Feldnamen oder Schlüsselwörter als Feldnamen zu verwenden.

Wider kontraproduktiver Angstpropaganda

BIAS-o-Meter GPU: [AMD]+---|----[nVidia] ... [AMD]---+|----[Intel]
BIAS-o-Meter CPU: [AMD]-+--|----[Intel]
samm ist offline Computer-Informationen von samm anzeigen   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2013-01-28, 23:15:57   #5 (im Thread / einzeln)
Geldmann3
Avantgarde Member
Threadstarter
 
Benutzerbild von Geldmann3
 
Registriert: 2009-05-05
Ort: Frankfurt am Main
Beiträge: 5.397
Smile Re: MySQL Monate mit Anzahl der Bestellungen

AHA, eine weitere Frage.


Welche Regionen haben eine Gesamtbevölkerung von mindestens 100 Millionen?


ich würde sie so lösen

SELECT Region, SUM(Einwohner) AS Gesamtbevolkerung
FROM cia
WHERE Gesamtbevölkerung > 1E08

die richtige Lösung ist aber

SELECT Region, SUM(Einwohner)
FROM cia
GROUP BY Region
HAVING SUM(Einwohner) > 1E08

Warum funktioniert meine Lösung nicht??

Hmmmm, wenn ich das richtig sehe, summiert es die Einwohner einer Region ohne das GROUP BY gar nicht....


Geändert von Geldmann3 (2013-01-28 um 23:18:19 Uhr)
Geldmann3 ist offline Computer-Informationen von Geldmann3 anzeigen   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2013-01-29, 00:29:51   #6 (im Thread / einzeln)
Marscel
Avantgarde Member
 
Registriert: 2005-03-04
Ort: Regularistan
Beiträge: 5.701
Re: MySQL Monate mit Anzahl der Bestellungen

Zitat von Geldmann3 Beitrag anzeigen
Hmmmm, wenn ich das richtig sehe, summiert es die Einwohner einer Region ohne das GROUP BY gar nicht....
Du solltest dir mal anschauen, was Gruppieren überhaupt bedeutet und wofür ein WHERE relevant ist im Unterschied zu einem HAVING.

Dann sollte sich die Frage klären.
Marscel ist offline Computer-Informationen von Marscel anzeigen   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2013-01-29, 11:01:44   #7 (im Thread / einzeln)
Matrix316
Ultimate Member
 
Benutzerbild von Matrix316
 
Registriert: 2001-05-13
Beiträge: 53.629
Matrix316 eine Nachricht über AIM schicken
Re: MySQL Monate mit Anzahl der Bestellungen

Zitat von Geldmann3 Beitrag anzeigen
AHA, eine weitere Frage.


Welche Regionen haben eine Gesamtbevölkerung von mindestens 100 Millionen?


ich würde sie so lösen

SELECT Region, SUM(Einwohner) AS Gesamtbevolkerung
FROM cia
WHERE Gesamtbevölkerung > 1E08

die richtige Lösung ist aber

SELECT Region, SUM(Einwohner)
FROM cia
GROUP BY Region
HAVING SUM(Einwohner) > 1E08

Warum funktioniert meine Lösung nicht??

Hmmmm, wenn ich das richtig sehe, summiert es die Einwohner einer Region ohne das GROUP BY gar nicht....
Bei deiner Abfrage geht das SUM glaube ich über alle Regionen. Kann es sein, dass es bei deiner Abfrage auch einen Fehler gibt von wegen Aggregatfunktion? Deswegen das group by.

aber man kann es auch anders schreiben:

select Region, (select sum(Einwohner) from cia where Region = a.Region) as Anzahl from cia a where (select sum(Einwohner) from cia where Region = a.Region) > 1E08

oder so. Ist halt nur etwas umständlicher.

System: AMD Ryzen 9800X3D - NZXT Kraken X63 - Asus Strix B650E-F Wifi - 32 GB RAM G.Skill DDR5 6000 CL30 - XFX 7900XTX 24GB - Samsung 980 PRO 2 TB M2 - Sabrent SB-RKT4P 2 TB M2 - diverse andere Platten insgesamt 10 TB - NZXT C1200 Gold ATX 3.1

Geändert von Matrix316 (2013-01-29 um 11:04:11 Uhr)
Matrix316 ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2013-01-29, 20:13:31   #8 (im Thread / einzeln)
Geldmann3
Avantgarde Member
Threadstarter
 
Benutzerbild von Geldmann3
 
Registriert: 2009-05-05
Ort: Frankfurt am Main
Beiträge: 5.397
Smile Re: MySQL Monate mit Anzahl der Bestellungen

Danke!!, hab heute eine Eins mit voller Punktzahl geschrieben, damit war ich sogar Klassenbester

Geldmann3 ist offline Computer-Informationen von Geldmann3 anzeigen   Mit Zitat antworten Beitrag zum Zitieren auswählen
Antwort

Lesezeichen
  • Dieses Thema bei Twitter speichern
  • Dieses Thema bei Facebook speichern


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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:51:32 Uhr.


Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.