<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>SQL-Frage</title>
    <link>http://forum.geizhals.at/feed.jsp?id=578189</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re(9): SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4875527.html#4875527</link>
      <description>man kann/darf nicht nachträglich bestellungen (mit älterem datum eingeben) ???&lt;br&gt;&lt;br&gt;(weil mans z.b. per email erhalten und vergessen hat einzugeben ..)&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 18:39:38 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4875527.html#4875527</guid>
      <dc:creator>adhoc</dc:creator>
      <dc:date>2008-06-24T18:39:38Z</dc:date>
    </item>
    <item>
      <title>Re(8): SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4875259.html#4875259</link>
      <description>na klar, anhand der ID der Bestellung (statt anhand des Datums) funktioniert es, schließlich ist die auch fortlaufend und natürlich immer aufsteigend (genauso wie das Datum)&lt;br&gt;&lt;br&gt;dein Beispiel von vorhin funktioniert also, wenn man das Datum durch die ID ersetzt, also:&lt;br&gt;&lt;br&gt;SELECT t.firmaID, t.datum, t.bestellnummer FROM tab t WHERE ID = (SELECT max(ID) FROM tab a where a.firmaID = t.firmaID) ORDER BY t.datum desc LIMIT 5&lt;br&gt;&lt;br&gt;danke!&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 16:52:52 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4875259.html#4875259</guid>
      <dc:creator>MJFox</dc:creator>
      <dc:date>2008-06-24T16:52:52Z</dc:date>
    </item>
    <item>
      <title>Re(7): SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4875238.html#4875238</link>
      <description>wenn du keine fortlaufende eindeutige bestellnummer hast (die du dann allerdings gleich statt des datums verwenden koenntest), und auch kein eindeutiges datum, ist das problem denke ich mal unloesbar, weil die db und auch du dann "raten" muessten - siehe dr. watson.&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 16:42:54 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4875238.html#4875238</guid>
      <dc:creator>japh</dc:creator>
      <dc:date>2008-06-24T16:42:54Z</dc:date>
    </item>
    <item>
      <title>Re(6): SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4875217.html#4875217</link>
      <description>das Problem ist, dass ich die unterschiedlichen Bestell-Nummern brauche (und nicht die unterschiedlichen Firmen-IDs)... wenn ich nur die unterschiedlichen FirmenIDs brauchen würde, könnte ich ja gleich ein "group by" nach FirmenID machen&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 16:36:14 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4875217.html#4875217</guid>
      <dc:creator>MJFox</dc:creator>
      <dc:date>2008-06-24T16:36:14Z</dc:date>
    </item>
    <item>
      <title>Re(2): SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4875210.html#4875210</link>
      <description>das "SELECT * FROM" habe ich jetzt natürlich nur der einfachkeit halber geschrieben... es ist klar, dass das in dem Fall nicht viel Sinn macht (auch wenn MySQL keine Fehlermeldung liefert sondern, wie du sagst, einfach irgendeinen Datensatz liefert)&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 16:32:34 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4875210.html#4875210</guid>
      <dc:creator>MJFox</dc:creator>
      <dc:date>2008-06-24T16:32:34Z</dc:date>
    </item>
    <item>
      <title>Re(5): SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4875209.html#4875209</link>
      <description>SELECT distinct(t.firmaID) ...&lt;br&gt;&lt;br&gt;sollte da helfen.&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 16:31:39 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4875209.html#4875209</guid>
      <dc:creator>japh</dc:creator>
      <dc:date>2008-06-24T16:31:39Z</dc:date>
    </item>
    <item>
      <title>Re(4): SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4875203.html#4875203</link>
      <description>danke, funktioniert fast &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br&gt;&lt;br&gt;es funktioniert nicht, wenn zwei Bestellungen zum genau gleichen Zeitpunkt passiert sind!&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 16:30:00 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4875203.html#4875203</guid>
      <dc:creator>MJFox</dc:creator>
      <dc:date>2008-06-24T16:30:00Z</dc:date>
    </item>
    <item>
      <title>Re: SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4875199.html#4875199</link>
      <description>&lt;blockquote&gt;&lt;em&gt; SELECT * FROM tab GROUP BY firmaID ORDER BY bestell_datum&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;Alleine das ist schon umöglich, und es ist IMHO eine Sauerei dass sowas überhaupt als gültiges Query anerkannt wird, jede ordentliche Datenbank quittiert dies mit einem Fehler.&lt;br&gt;&lt;br&gt;Es ist logisch gesehen nicht möglich, sich Felder in einem Query herauszuholen, nach denen nicht gruppiert wird.&lt;br&gt;&lt;br&gt;Angenommen du hast die Datensätze:&lt;br&gt;&lt;br&gt;&lt;pre&gt;&lt;br&gt;FirmaId | Bestellnummer | Bestell_Datum&lt;br&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 2008-06-10&lt;br&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 2008-06-10&lt;br&gt;&lt;/pre&gt;&lt;br&gt;&lt;br&gt;Wenn du nun dein Query ausführst, und nach Firma gruppierst, würde ein Datensatz herauskommen. Da es aber in der Realität 2 Datensätze waren, ist es nun umöglich, eine Bestellnummer zusätzlich, ohne Gruppierung, rauszubekommen - MySQL "rät" hier, und nimmt einfach irgend eine. Bei der Sortierung ist es selbiges, darf bei einem Feld, nach dem nicht gruppiert wird, nicht möglich sein...&lt;br&gt;&lt;br&gt;Aber zu deinem Problem - wüsste keine Möglichkeit, das mit einem Query zu lösen, ein LIMIT hat in dem Fall gar keinen Sinn, weil es immer erst auf das Endergebnis angewandt wird.&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 16:29:39 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4875199.html#4875199</guid>
      <dc:creator>Dr. Watson</dc:creator>
      <dc:date>2008-06-24T16:29:39Z</dc:date>
    </item>
    <item>
      <title>Re(3): SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4875186.html#4875186</link>
      <description>ah ja, dann wohl so:&lt;br&gt;&lt;br&gt;SELECT t.firmaID, t.datum, t.bestellnummer FROM tab t WHERE datum = (SELECT max(datum) FROM tab a where a.firmaID = t.firmaID) ORDER BY t.datum desc LIMIT 5&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 16:24:03 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4875186.html#4875186</guid>
      <dc:creator>japh</dc:creator>
      <dc:date>2008-06-24T16:24:03Z</dc:date>
    </item>
    <item>
      <title>Re(2): SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4875152.html#4875152</link>
      <description>das liefert mir aber nicht die dazugehörige Bestellnummer &lt;img src="schief.gif" width="16" height="19" align="absmiddle" alt=":-/"/&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 16:14:56 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4875152.html#4875152</guid>
      <dc:creator>MJFox</dc:creator>
      <dc:date>2008-06-24T16:14:56Z</dc:date>
    </item>
    <item>
      <title>Re: SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4875144.html#4875144</link>
      <description>select firmaID, max(datum) as bla from tab GROUP by firmaID ORDER BY bla desc limit 5&lt;br&gt;&lt;br&gt;sollte (in mysql!) funktionieren und wohl das liefern was du willst, zumindest ging das vor ca. 4-5 jahren in mysl noch so. &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 16:11:47 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4875144.html#4875144</guid>
      <dc:creator>japh</dc:creator>
      <dc:date>2008-06-24T16:11:47Z</dc:date>
    </item>
    <item>
      <title>Re(3): SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4875121.html#4875121</link>
      <description>ja, was weiß ich, kenn micht nicht aus mit sql..&lt;br&gt;&lt;br&gt;irgendwie so: (nur halt nicht betrag, sondern datum ...)&lt;br&gt;&lt;br&gt;SELECT &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;oh.*, od.* &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM OrderHeader oh &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INNER JOIN OrderDetails od &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ON oh.OrderID = od.OrderID &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHERE od.Amount = (SELECT MAX(Amount) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM OrderDetails &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHERE OrderID = oh.OrderID); &lt;br&gt;&lt;br&gt;das als view &lt;br&gt;&lt;br&gt;und beim view, sort by datum (mit limit 5)&lt;br&gt;&lt;br&gt;oder so..&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 15:59:19 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4875121.html#4875121</guid>
      <dc:creator>adhoc</dc:creator>
      <dc:date>2008-06-24T15:59:19Z</dc:date>
    </item>
    <item>
      <title>Re(2): SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4874947.html#4874947</link>
      <description>max() liefert aber nur den höchsten Wert (und nicht x höchste Werte)&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 15:02:02 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4874947.html#4874947</guid>
      <dc:creator>MJFox</dc:creator>
      <dc:date>2008-06-24T15:02:02Z</dc:date>
    </item>
    <item>
      <title>Re: SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4874938.html#4874938</link>
      <description>irgendwars mit where max(bestelldatum) = bestelldatum &lt;br&gt;&lt;br&gt;oder so&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 15:00:27 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4874938.html#4874938</guid>
      <dc:creator>adhoc</dc:creator>
      <dc:date>2008-06-24T15:00:27Z</dc:date>
    </item>
    <item>
      <title>SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4874837.html#4874837</link>
      <description>Hi!&lt;br&gt;&lt;br&gt;Ansich wohl eine triviale Sache, aber ich komme irgendwie nicht dahinter.&lt;br&gt;&lt;br&gt;Ich brauche eine SQL-Abfrage, die mir die aktuellsten Datensätze liefert, gruppiert nach einem bestimmten Datenbankfeld.&lt;br&gt;&lt;br&gt;Also die Tabelle hat (vereinfacht gesehen) zwei Felder:&lt;br&gt;&lt;br&gt;firmaID / bestelldatum (timestamp) / bestell-Nr.&lt;br&gt;&lt;br&gt;jetzt will ich die letzten 5 Bestellungen, aber von jeder Firma nur eine&lt;br&gt;&lt;br&gt;wie sieht da die SQL-Abfrage aus?&lt;br&gt;&lt;br&gt;normalerweise würde ich ja sagen&lt;br&gt;&lt;br&gt;SELECT * FROM tab GROUP BY firmaID ORDER BY bestell_datum&lt;br&gt;&lt;br&gt;allerdings gruppiert "GROUP BY" vor dem sortieren und nicht danach, sodass nicht zwangsläufig die aktuellste Bestellung im gruppierten Ergebnis steht&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 14:35:51 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4874837.html#4874837</guid>
      <dc:creator>MJFox</dc:creator>
      <dc:date>2008-06-24T14:35:51Z</dc:date>
    </item>
    <item>
      <title>SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4874870.html#4874870</link>
      <description>Hi!&lt;br&gt;&lt;br&gt;Ansich wohl eine triviale Sache, aber ich komme irgendwie nicht dahinter.&lt;br&gt;&lt;br&gt;Ich brauche eine SQL-Abfrage, die mir die aktuellsten Datensätze liefert, gruppiert nach einem bestimmten Datenbankfeld.&lt;br&gt;&lt;br&gt;Also die Tabelle hat (vereinfacht gesehen) zwei Felder:&lt;br&gt;&lt;br&gt;firmaID / bestelldatum (timestamp) / bestell-Nr.&lt;br&gt;&lt;br&gt;jetzt will ich die letzten 5 Bestellungen, aber von jeder Firma nur eine&lt;br&gt;&lt;br&gt;wie sieht da die SQL-Abfrage aus?&lt;br&gt;&lt;br&gt;normalerweise würde ich ja sagen&lt;br&gt;&lt;br&gt;SELECT * FROM tab GROUP BY firmaID ORDER BY bestell_datum&lt;br&gt;&lt;br&gt;allerdings gruppiert "GROUP BY" vor dem sortieren und nicht danach, sodass nicht zwangsläufig die aktuellste Bestellung im gruppierten Ergebnis steht&lt;br&gt;&lt;br&gt;Edit: Datenbank ist MySQL 5.0&lt;br&gt;&lt;br&gt;Edit2: jetzt ist mir doch noch was eingefallen, wobei mir das nicht besonders gut gefällt:&lt;br&gt;&lt;br&gt;SELECT * FROM tab WHERE bestelldatum IN (SELECT bestelltdatum FROM tab ORDER BY bestelldatum DESC LIMIT 5) GROUP BY firmaID ORDER BY bestell_datum LIMIT 5&lt;br&gt;&lt;br&gt;gibt es eine bessere Lösung?&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 14:35:51 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4874870.html#4874870</guid>
      <dc:creator>MJFox</dc:creator>
      <dc:date>2008-06-24T14:35:51Z</dc:date>
    </item>
    <item>
      <title>SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4874881.html#4874881</link>
      <description>Hi!&lt;br&gt;&lt;br&gt;Ansich wohl eine triviale Sache, aber ich komme irgendwie nicht dahinter.&lt;br&gt;&lt;br&gt;Ich brauche eine SQL-Abfrage, die mir die aktuellsten Datensätze liefert, gruppiert nach einem bestimmten Datenbankfeld.&lt;br&gt;&lt;br&gt;Also die Tabelle hat (vereinfacht gesehen) zwei Felder:&lt;br&gt;&lt;br&gt;firmaID / bestelldatum (timestamp) / bestell-Nr.&lt;br&gt;&lt;br&gt;jetzt will ich die letzten 5 Bestellungen, aber von jeder Firma nur eine&lt;br&gt;&lt;br&gt;wie sieht da die SQL-Abfrage aus?&lt;br&gt;&lt;br&gt;normalerweise würde ich ja sagen&lt;br&gt;&lt;br&gt;SELECT * FROM tab GROUP BY firmaID ORDER BY bestell_datum&lt;br&gt;&lt;br&gt;allerdings gruppiert "GROUP BY" vor dem sortieren und nicht danach, sodass nicht zwangsläufig die aktuellste Bestellung im gruppierten Ergebnis steht&lt;br&gt;&lt;br&gt;Edit: Datenbank ist MySQL 5.0&lt;br&gt;&lt;br&gt;Edit2: jetzt ist mir doch noch was eingefallen, wobei mir das nicht besonders gut gefällt:&lt;br&gt;&lt;br&gt;SELECT * FROM tab WHERE bestelldatum IN (SELECT bestelltdatum FROM tab ORDER BY bestelldatum DESC LIMIT 5) GROUP BY firmaID ORDER BY bestell_datum LIMIT 5&lt;br&gt;&lt;br&gt;gibt es eine bessere Lösung?&lt;br&gt;&lt;br&gt;Edit3: hrmpf... Lösung von Edit2 geht nicht, weil MySQL 5.0 kein "Limit" in Subselects unterstützt &lt;img src="schief.gif" width="16" height="19" align="absmiddle" alt=":-/"/&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 14:35:51 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4874881.html#4874881</guid>
      <dc:creator>MJFox</dc:creator>
      <dc:date>2008-06-24T14:35:51Z</dc:date>
    </item>
    <item>
      <title>SQL-Frage</title>
      <link>http://forum.geizhals.at/t578189,4874858.html#4874858</link>
      <description>Hi!&lt;br&gt;&lt;br&gt;Ansich wohl eine triviale Sache, aber ich komme irgendwie nicht dahinter.&lt;br&gt;&lt;br&gt;Ich brauche eine SQL-Abfrage, die mir die aktuellsten Datensätze liefert, gruppiert nach einem bestimmten Datenbankfeld.&lt;br&gt;&lt;br&gt;Also die Tabelle hat (vereinfacht gesehen) zwei Felder:&lt;br&gt;&lt;br&gt;firmaID / bestelldatum (timestamp) / bestell-Nr.&lt;br&gt;&lt;br&gt;jetzt will ich die letzten 5 Bestellungen, aber von jeder Firma nur eine&lt;br&gt;&lt;br&gt;wie sieht da die SQL-Abfrage aus?&lt;br&gt;&lt;br&gt;normalerweise würde ich ja sagen&lt;br&gt;&lt;br&gt;SELECT * FROM tab GROUP BY firmaID ORDER BY bestell_datum&lt;br&gt;&lt;br&gt;allerdings gruppiert "GROUP BY" vor dem sortieren und nicht danach, sodass nicht zwangsläufig die aktuellste Bestellung im gruppierten Ergebnis steht&lt;br&gt;&lt;br&gt;Edit: Datenbank ist MySQL 5.0&lt;br/&gt;</description>
      <pubDate>Tue, 24 Jun 2008 14:35:51 GMT</pubDate>
      <guid>http://forum.geizhals.at/t578189,4874858.html#4874858</guid>
      <dc:creator>MJFox</dc:creator>
      <dc:date>2008-06-24T14:35:51Z</dc:date>
    </item>
  </channel>
</rss>
