| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Neuer Benutzer Registriert seit: 16.05.2011
Beiträge: 5
PHP-Kenntnisse: Anfänger ![]() | Moin. Preise sind nicht festgelegt, könnte man machen, muss man aber nicht. Hatte da schon eine CASE Abfrage in der mySQL ausprobiert. Hier kommen wir zur Struktur: subscriptionlog: subscriptionlogid -- subscriptionid (PRIMARY mit subscription..) -- userid -- status subscription: subscriptionid Jetzt habe ich verschiedene Einträge in der Tabelle subscription. Wenn subscriptionid = 1, dann Abo 1 (10€). Wenn subscriptionid = 2 (20€), dann Abo 2. Mehr erstmal nicht. ein User kann X Abos abschließen. Jetzt würde ich gerne ermitteln, wer die meisten Abos hat und wieviel er gezahlt hat. |
| | |
| | ||||
| Erfahrener Benutzer Registriert seit: 07.07.2009
Beiträge: 215
PHP-Kenntnisse: Anfänger ![]() | Zitat:
Zitat:
Zitat:
__________________ LG Delirius Ein Ring Sie zu knechten... | |||
| | |
| | ||
| Neuer Benutzer Registriert seit: 16.05.2011
Beiträge: 5
PHP-Kenntnisse: Anfänger ![]() | Zitat:
welche Informationen denn noch? Der Aufbau der Tabellen habe ich bereits gepostet: subscriptionlog: subscriptionlogid -- subscriptionid (PRIMARY mit subscription..) -- userid -- status subscription: subscriptionid Einen Ansatz hatte ich schon, allerdings nur die Überprüfung welche Abos er abgeschlosse hat (subscriptionid, 1 oder 2). Wusste aber nicht wie ich die kompletten Einräge zählen kann(die ein user abgeschlossen hat) und dann mit der Summe( subscriptionid = 1 = 10€, subscriptionid = 2 = 20€) multiplizieren kann. Nochmal: Es werden alle Abos in subscriptionlog gespeichert. subscription werden alle "Verträge" gespeichert. Sprich, wenn user Abo 1 bestellt, ist es auch subscription 1 (subscriptionid = 1). Ich will halt alle Einträge ermitteln, wieviele Abos ein user abgeschlossen hat und dazu noch den gesammten Preis. Die Preise stehen nicht in der Datenbank, in der Tabelle subscription wird das so gerechnet = subscriptionid = 1 = 10€. subscriptionid = 2 = 20€. | |
| | |
| | |
| Erfahrener Benutzer | Sowas ist möglich ja. Allerdings halte ich es etwas "unnormalisiert" wenn du die Preise nicht als einzelne Tabelle bereitstellst und man die Preise anhand der subscriptionID im query hardcoden muss. Desweiteren sind das 2 Paar Schuhe ob jemand die meisten Abo's hat oder am meisten Zahlt. Entsprechend solltest du entweder 10 ( 2x Top5 ) Rows am ende erhalten, oder 2 Queries erzeugen die jeweils die Top5 für die meisten Abo's oder die meisten Ausgaben zurückgeben. Einzeln ( jeweils 5 rows ): Äußeres Select mit Limit auf 5, descandend sort. Inneres Select mit Max(feld) und Summierung des Counts innerhalb einer Bedingung ( IF THEN ELSE, siehe mysql handbuch ). alles zusammen ( 10 rows ): Parent Select ( Äußeres Select mit Limit auf 5, descandend sort. Inneres Select mit Max(feld) und Summierung des Counts innerhalb einer Bedingung. ) UNION ( same again, für den 2ten Zustand )
__________________ |
| | |
| | ||
| Neuer Benutzer Registriert seit: 16.05.2011
Beiträge: 5
PHP-Kenntnisse: Anfänger ![]() | ok danke. Bin nicht der mySQL Typ, bin nur in der .NET Branche tätig. Dazu kommt noch, ich will nur den die top3 der Käufer anzeigen (Wer hat am meisten bezahlt). Die Preise stehen auch in der subscription Tabelle unter costs. Allerdings ist die merkwürdig aufgebaut: Zitat:
| |
| | |
| | ||||
| Erfahrener Benutzer Registriert seit: 07.07.2009
Beiträge: 215
PHP-Kenntnisse: Anfänger ![]() | Zitat:
Mach doch einfach ein desc innerhalb (My)SQL und poste den Aufbau, dann sieht man wie die Tabellen komplett aufgebaut sind. Zitat:
Sonst halte dich weiter an die Aussagen von hausl und tr0y. *Edit* Zitat:
__________________ LG Delirius Ein Ring Sie zu knechten... Geändert von Delirius (12.11.2011 um 09:54 Uhr). Grund: Nachtrag vom TE | |||
| | |
| | ||
| Erfahrener Benutzer | Zitat:
Falls das nicht möglich ist, zieh es vor die Preise zu hardcoden, jedesmal serialisierungen aus anderen sprachen durch die gegen zu exploden und zu parsen geht immer auf kosten der query-performance. Bedenke auch das du innerhalb von MySQL die möglichkeit besitzt temporäre Tabellen zu erzeugen und diese dann für die Queries zu nutzen, das ganze kann man theoretisch über trigger ( gebunden an die original tabellen ) lösen ( die dann zeitgleich auch in "deine" tabellen daten "übertragen", jene Tabellen können dann so strukturiert sein das sie die komplette Anwendungsdatenbank normalisiert behandeln. Die Tabellen nutzt du dann mit simpleren Queries um an deine Daten zu kommen. Technisch gesehen kann sogar ein weiterer Trigger eine weitere Tabelle mit Daten füllen die die Top 3 / Top 5 repräsentiert, quasi also nurnoch ein SELECT auf diese Tabelle notwendig ist, das umzusetzen was du willst. ( Data Caching mit und innerhalb MySQL wäre das dann )
__________________ | |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] zend mssql query: Convert wird gequoted | MLang | PHP-Fortgeschrittene | 2 | 05.09.2011 10:57 |
| [Erledigt] Join Query mit Hilfe des ZF erstellen | dreamcatcher | PHP Einsteiger | 7 | 14.08.2011 15:03 |
| Mitarbeiter für Query OS gesucht | Kasenoru | Sonstige | 0 | 18.06.2011 00:34 |
| [Erledigt] hilfe bei sql query (ergebnis filtern) | thedarkknight | Datenbanken | 2 | 16.06.2011 11:06 |
| impossible where clause / MySQL Integer Query | chunky | PHP Einsteiger | 4 | 11.04.2011 14:45 |
| ' und " in einer Query | Ulrikop | Datenbanken | 7 | 19.02.2011 17:59 |
| Unabhängige "Auto-Increment Spalte" für ein ON DUPLICATE KEY query? | juice122 | Datenbanken | 4 | 31.05.2010 20:59 |
| MySQL: INSERT INTO oder UPDATE verknüpft in einem Query | juice122 | Datenbanken | 21 | 06.05.2010 20:25 |
| [Erledigt] Aufgeteilte Query mit LIMIT & Order | bench78 | PHP Tipps 2010 | 4 | 10.03.2010 02:33 |
| Query funktioniert im SQL Query Browser aber nicht in PHP - DB zu groß ? | john_the_bad | Datenbanken | 10 | 16.09.2008 18:17 |
| Variablen in Query automatisch escapen | Maho88 | PHP Tipps 2007 | 10 | 31.07.2007 08:42 |
| PHP/MySQL: Query wird nicht ausgeführt | Zergling-new | Tutorials | 5 | 09.05.2006 23:16 |
| Query, was aus einer Tabelle mehrere Summen rausholt | Datenbanken | 3 | 14.09.2005 16:45 | |
| select query durch if anweisungen splitten | Datenbanken | 6 | 06.09.2004 13:46 | |
| [Erledigt] Query läuft nicht | Datenbanken | 6 | 13.08.2004 21:13 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php sql query alle, a:3:{i:0;s:5:\\;} auslesen in php, sql abfragen php anfänger |