Aggregation

Aggregation

am 20.04.2007 15:12:18 von info

Hallo, habe folgendes Statement:

select * from eingangsrechnungen group by lieferant

Dieses Statement liefert für jeden Lieferanten aus meiner Rechnungs-
Tabelle einen vollständigen Datensatz zurück. Und zwar immer den
ältesten. Ich möchte aber immer den jüngsten ausgegeben haben.
Wie müsste das SQL-Statement aussehen?

Vielen Dank, viele Grüße

Stefan

Hier noch die Tabellenstruktur:

CREATE TABLE `eingangsrechnungen ` (
`id` int(11) NOT NULL auto_increment,
`rechnungsdatum` datetime NOT NULL default '0000-00-00 00:00:00',
`rechnungsnummer` varchar(255) default NULL,
`lieferant` varchar(255) NOT NULL default '',
`ware` varchar(255) NOT NULL default '',
`warengruppe` varchar(255) NOT NULL default '',
`betrag` int(11) NOT NULL default '0',
`mwst` int(11) NOT NULL default '0',
`upd` timestamp NOT NULL default CURRENT_TIMESTAMP on update
CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)

Re: Aggregation

am 20.04.2007 15:22:25 von Kai Ruhnau

info@klebast.de wrote:
^^^^^^^^^^^^^^^
Bitte wer?

Im deutschen Usenet erhöht ein Realname deutlich die Chance auf Antworten.

> Hallo, habe folgendes Statement:
>
> select * from eingangsrechnungen group by lieferant
>
> Dieses Statement liefert für jeden Lieferanten aus meiner Rechnungs-
> Tabelle einen vollständigen Datensatz zurück. Und zwar immer den
> ältesten.

Nein, das sieht nur so aus. Du bekommst einen zufälligen.

> Ich möchte aber immer den jüngsten ausgegeben haben.
> Wie müsste das SQL-Statement aussehen?

Hast du das Tutorial von MySQL schon durchgearbeitet?
http://dev.mysql.com/doc/refman/5.0/en/tutorial.html

Da steht die Antwort drin.

Grüße
Kai

Re: Aggregation

am 20.04.2007 15:39:53 von info

On 20 Apr., 15:22, Kai Ruhnau wrote:
> i...@klebast.de wrote:
>
> ^^^^^^^^^^^^^^^
> Bitte wer?
>

Stefan Simon

> Im deutschen Usenet erhöht ein Realname deutlich die Chance auf Antwort=
en.

ich habe über Google Groups gepostet und dort im Profil meinen Namen
hinterlegt, wurde aber nicht im Posting angezeigt. Hab's nun
nocheinmal abgespeichert, vielleicht funktioniert's ja jetzt.

> Hast du das Tutorial von MySQL schon durchgearbeitet?http://dev.mysql.com=
/doc/refman/5.0/en/tutorial.html

Hab's überflogen, das Tutorial durchzuarbeiten ist eine langwierige
Sache. Ich dachte, ich könnte hier schneller eine Antwort finden.

Viele Grüße

Stefan Simon

Re: Aggregation

am 20.04.2007 15:45:32 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Aggregation

am 20.04.2007 15:55:31 von Christian Kirsch

Am 20.04.2007 15:39 schrieb info@klebast.de:
> On 20 Apr., 15:22, Kai Ruhnau wrote:

>> Hast du das Tutorial von MySQL schon durchgearbeitet?http://dev.mysql.com/doc/refman/5.0/en/tutor ial.html
>
> Hab's überflogen, das Tutorial durchzuarbeiten ist eine langwierige
> Sache. Ich dachte, ich könnte hier schneller eine Antwort finden.
>

Datenbanken sind ja auch eine komplexe Angelegenheit. Was spricht
dagegen, dass Du selbst den minimalen Aufwand treibst, mal in der
Dokumentation nachzulesen? Du musst sie ja ohnehin studieren, wenn Du
mit MySQL arbeiten willst.

Re: Aggregation

am 20.04.2007 16:38:17 von info

> Datenbanken sind ja auch eine komplexe Angelegenheit. Was spricht
> dagegen, dass Du selbst den minimalen Aufwand treibst, mal in der
> Dokumentation nachzulesen? Du musst sie ja ohnehin studieren, wenn Du
> mit MySQL arbeiten willst.

Ich gebe Dir recht, um mit MySQL arbeiten zu können, sollte man sich
auf jeden Fall mit dem Thema auseinandersetzen.
Ich denke jedoch, dass meine Frage nicht so ganz einfach zu
beantworten ist und man sich schon relativ gut in SQl auskennen muss,
um eine Lösung zu finden. Mit 'minimalem Aufwand' ist hier meines
Erachtens nichts zu holen.

Stefan Simon

Re: Aggregation

am 20.04.2007 16:49:27 von Christian Kirsch

Am 20.04.2007 16:38 schrieb info@klebast.de:
>> Datenbanken sind ja auch eine komplexe Angelegenheit. Was spricht
>> dagegen, dass Du selbst den minimalen Aufwand treibst, mal in der
>> Dokumentation nachzulesen? Du musst sie ja ohnehin studieren, wenn Du
>> mit MySQL arbeiten willst.
>
> Ich gebe Dir recht, um mit MySQL arbeiten zu können, sollte man sich
> auf jeden Fall mit dem Thema auseinandersetzen.
> Ich denke jedoch, dass meine Frage nicht so ganz einfach zu
> beantworten ist und man sich schon relativ gut in SQl auskennen muss,
> um eine Lösung zu finden. Mit 'minimalem Aufwand' ist hier meines
> Erachtens nichts zu holen.
>
>
Die Zeit, die Du hier verbracht hast, um zu erklären, dass die Zeit
für die Lektüre des Tutorials nicht reicht, hättest Du auch mit der
Lektüre des Tutorials verbringen können. Oder mit Googeln, BTW.

Re: Aggregation

am 20.04.2007 17:07:33 von info

> Die Zeit, die Du hier verbracht hast, um zu erklären, dass die Zeit
> für die Lektüre des Tutorials nicht reicht, hättest Du auch mit der
> Lektüre des Tutorials verbringen können. Oder mit Googeln, BTW.

Andersrum hättest Du mir in der gleichen Zeit eine Lösung präsentieren
können, dann hätten wir beide uns Zeit gespart.
Nichts für ungut aber Deine schlauen Ratschläge helfen hier wirklich
nicht weiter.

Stefan Simon

Re: Aggregation

am 20.04.2007 17:33:15 von info

> Andreas Kretschmer

>
> test=3D*# select foo.* from foo where (gruppe,datum) in (select gruppe, m=
ax(datum) from foo group by gruppe);
> id | gruppe | datum
> ----+--------+------------
> 5 | 1 | 2007-04-25
> 9 | 2 | 2007-04-25
> (2 rows)


Vielen Dank für die schnelle und kompetente Hilfe! Funktioniert
bestens!

Stefan Simon

Re: Aggregation

am 20.04.2007 19:26:31 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Aggregation

am 21.04.2007 06:09:21 von Daniel Fischer

info!

> Andersrum hättest Du mir in der gleichen Zeit eine Lösung präsentieren
> können, dann hätten wir beide uns Zeit gespart.

Nein, das ist ein Denkfehler, es ist für ihn ja in jedem Fall vergeudete
Zeit. Du bist der einzige, der spart, und du könntest viel mehr Zeit
sparen, wenn du die Dokumentation lesen würdest. Das ist auf Dauer auch
zielführender als wegen jedem Pipifax nach Mama zu brüllen.


Gruß
Daniel

Re: Aggregation

am 21.04.2007 07:28:05 von info

> Nein, das ist ein Denkfehler, es ist für ihn ja in jedem Fall vergeudete
> Zeit. Du bist der einzige, der spart, und du könntest viel mehr Zeit
> sparen, wenn du die Dokumentation lesen würdest. Das ist auf Dauer auch
> zielführender als wegen jedem Pipifax nach Mama zu brüllen.

ok, dann habe ich vielleicht den Sinn des USENET nicht verstanden:

- ich habe ein Problem, komm nicht weiter, weil ich mich in diesem
Thema nicht besonders gut auskenne und hoffe, dass ich hier jemanden
finde, der sich besser auskennt.
- Stattdessen werde ich oberlehrerhaft darauf hingewiesen, dass ich
mir die Lösung selbst erarbeiten soll.
- Wofür gibt es denn dann dieses Forum?


Stefan Simon

Re: Aggregation

am 21.04.2007 07:54:42 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Aggregation

am 21.04.2007 14:02:53 von Andreas Scherbaum

Hallo,

info@klebast.de wrote:
^^^^^^^^^^^^^^^

Da wir schon über Sinn und Unsinn des Usenet reden, es gibt Netiquetten
und da steht unter anderen drin, dass es unhöflich ist, ohne vollen Namen
zu posten.


>> Nein, das ist ein Denkfehler, es ist für ihn ja in jedem Fall vergeudete
>> Zeit. Du bist der einzige, der spart, und du könntest viel mehr Zeit
>> sparen, wenn du die Dokumentation lesen würdest. Das ist auf Dauer auch
>> zielführender als wegen jedem Pipifax nach Mama zu brüllen.
>
> ok, dann habe ich vielleicht den Sinn des USENET nicht verstanden:
>
> - ich habe ein Problem, komm nicht weiter, weil ich mich in diesem
> Thema nicht besonders gut auskenne und hoffe, dass ich hier jemanden
> finde, der sich besser auskennt.

Dieser Satz zeigt, das du den Sinn des Usenet wirklich nicht verstanden
hast. Wir sind hier nicht dafür da, deine Arbeit zu erledigen. Wenn du
mit einem Problem nicht weiterkommst, frag halt. Aber erwarte a) nicht
unbedingt eine Antwort und b) keine Antwort, die deinen Wünschen
gerecht wird.

Dir wurden Hinweise gegeben, wie du bei deinem Problem weiterkommst.


> - Stattdessen werde ich oberlehrerhaft darauf hingewiesen, dass ich
> mir die Lösung selbst erarbeiten soll.

Es ist genauso unhöflich, hier zu posten und im gleichen Atemzug zu
zeigen, das man sich mit seinem Problem nicht auseinander gesetzt hat
und eigentlich auch nicht auseinandersetzen möchte. Sollen halt die
anderen mein Problem lösen, oder wie?


> - Wofür gibt es denn dann dieses Forum?

Die Teilnahme ist freiwillig, sowohl für den Fragenden wie für die
Antwortenden. Wenn du Support haben willst, der dir deine Fragen
beantwortet, egal, wie sehr du Unwissenheit und Unlust zeigst,
kauf dir einen Dienstleister dafür ein.


Bye

--
Andreas 'ads' Scherbaum
Failure is not an option. It comes bundled with your Microsoft product.
(Ferenc Mantfeld)

Re: Aggregation

am 21.04.2007 14:12:19 von Axel Schwenke

info@klebast.de wrote:

Da fehlt ja immer noch der Realname. Hast du eine Merkbefreiung?

>> Nein, das ist ein Denkfehler, es ist für ihn ja in jedem Fall vergeudete
>> Zeit. Du bist der einzige, der spart, und du könntest viel mehr Zeit
>> sparen, wenn du die Dokumentation lesen würdest. Das ist auf Dauer auch
>> zielführender als wegen jedem Pipifax nach Mama zu brüllen.
>
> ok, dann habe ich vielleicht den Sinn des USENET nicht verstanden

Exakt. Hast du nicht. Wir sind hier weder der Handbuch-Vorlese-Dienst
noch die Heinzelmännchen-Brigade, die deine Arbeit mal schnell erledigt
während du schläfst.

> - ich habe ein Problem, komm nicht weiter, weil ich mich in diesem
> Thema nicht besonders gut auskenne und hoffe, dass ich hier jemanden
> finde, der sich besser auskennt.

Du hast ein Problem, bist aber zu faul dir die Lösung selber zu erar-
beiten und suchst deswegen jemanden, der die Arbeit für dich macht.
Genaugenommen ist es nichtmal ein Problem, sondern eine Wissenslücke,
die du mit wenig Aufwand schließen könntest.

> - Stattdessen werde ich oberlehrerhaft darauf hingewiesen, dass ich
> mir die Lösung selbst erarbeiten soll.

Das ist für alle Beteiligten besser. Du lernst etwas dabei und wir
müssen dir nicht nächste Woche die gleiche Frage (leicht verändert)
nochmal beantworten.

> - Wofür gibt es denn dann dieses Forum?

a) das ist kein Forum. Das ist eine Newsgroup.
b) einmal darfst du raten, wofür "News" steht


PS: vielleicht noch was sachdienliches:

1. http://www.php-faq.de/q/q-sql-select.html
"Warum soll ich nicht SELECT * schreiben?"

2. Standard-SQL erlaubt bei GROUP BY nur Aggregate oder Spalten aus der
GROUP BY-Liste in der SELECT-Liste; MySQL erweitert die SQL Syntax
hier etwas. Wenn MySQL im falschen SQL-Mode läuft oder du mal ein
anderes DBMS nutzen willst, ergibt deine Query einen Syntax Error.


XL

Re: Aggregation

am 21.04.2007 16:54:48 von Claus Reibenstein

Andreas Scherbaum schrieb:

> info@klebast.de wrote:
> ^^^^^^^^^^^^^^^
>
> Da wir schon über Sinn und Unsinn des Usenet reden, es gibt Netiquetten
> und da steht unter anderen drin, dass es unhöflich ist, ohne vollen Namen
> zu posten.

Vielleicht sollte Herr/Frau info@klebast.de[1] sich einfach mal
zu Gemüte führen. Dort findet er/sie neben der
Netiquette sicher noch viele weitere Infos über das Usenet, die ihm/ihr
zum überwiegenden Teil noch unbekannt sein dürften ...

Gruß. Claus

[1] der ohne mein Zutun von meinem Realnamenplausibilitätsfilter
zuverlässig entsorgt wurde, weswegen ich auch auf Dein Posting
antworten muss und nicht auf seines antworten kann