php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.11.2004, 18:30  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard MySQL 4.1.7 - Subselects - Unterschiede zw. Zeilen

Hi Leute,
ich habe da mal ein SQL-Problem.

Tabellenstruktur mit INSERTs:
Code:
CREATE TABLE `testtabelle` (
  `id` int(5) NOT NULL auto_increment,
  `jahr` char(2) NOT NULL default '0',
  `monat` varchar(20) NOT NULL default '',
  `visits` int(7) NOT NULL default '0',
  `bilder` int(5) NOT NULL default '0',
  `helpdesk` int(5) NOT NULL default '0',
  `studium` int(5) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;


INSERT INTO `testtabelle` (`id`, `jahr`, `monat`, `visits`, `bilder`, `helpdesk`, `studium`) VALUES (1, '04', 'November', 856, 997, 11, 2);
INSERT INTO `testtabelle` (`id`, `jahr`, `monat`, `visits`, `bilder`, `helpdesk`, `studium`) VALUES (2, '04', 'dezember', 126, 1513, 23, 6);
Mir steht ab sofort bei Hosteurope MySQL 4.1.7 zur Verfügung, so dass ich mal hoffe, dass die Subselects mir die Lösung für mein Problemchen geben können.

So. Ich habe nun folgende SELECT-Anweisung:
Code:
$sql = 'SELECT
           jahr,
           monat,
           visits,
           bilder,
           helpdesk,
           studium
          FROM
           testtabelle
          ORDER BY
           id
          DESC
          LIMIT 12';
Ich möchte jetzt zusätzlich noch die Unterschiede zwischen zwei Zeilen herausselektieren.
Also so, dass ich im Endeffekt eine Zahl habe, welche die neuen (z.B.) Bilder in einem Monat darstellt.

Ich hoffe ich habe mich da genau genug ausgedrückt.
Ich würde mich über einen Tipp und ein Codebeispiel freuen.

Mir fehlt es hierbei eher an der Logik, als an der Umsetzung ... glaube ich ..

Danke. Ben.
imported_Ben ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.11.2004, 19:55  
Gast
 
Beiträge: n/a
Standard Re: MySQL 4.1.7 - Subselects - Unterschiede zw. Zeilen

Zitat:
Zitat von Ben
Also so, dass ich im Endeffekt eine Zahl habe, welche die neuen (z.B.) Bilder in einem Monat darstellt.
a. woran erkennt man die 'neuen' Einträge?
b. warum nutzt Du nicht DATE bzw. DATETIME?

Bis jetzt erkenne ich allerdings noch keine Notwendigkeit für ein Subselect...
  Mit Zitat antworten
Alt 23.11.2004, 11:51  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: MySQL 4.1.7 - Subselects - Unterschiede zw. Zeilen

Zitat:
Zitat von meikel
Zitat:
Zitat von Ben
Also so, dass ich im Endeffekt eine Zahl habe, welche die neuen (z.B.) Bilder in einem Monat darstellt.
a. woran erkennt man die 'neuen' Einträge?
Wenn im Monat Monat November 997 Bilder habe und im Monat Dezember 1513, dann sollte in der Spalte 'neu' 516 stehen. Man könnte 'neu' auch in 'in diesem Monat hinzugekommen' abändern

Zitat:
Zitat von meikel
b. warum nutzt Du nicht DATE bzw. DATETIME?
Tja. Ich weiß auch nicht so genau. Irgendwann habe ich das mal so gemacht und irgendwie bin ich da nicht mehr von weg gekommen Nicht gerade ein haltbares Argument, ich weiß.

Zitat:
Zitat von meikel
Bis jetzt erkenne ich allerdings noch keine Notwendigkeit für ein Subselect...
Ich kann dir das weder zustimmen noch widersprechen.

Ich weiß nur einfach nicht, wie ich das lösen könnte.
Bei weiteren Fragen ... her damit.

Grüße Ben.


EDIT:

Hallo,
ich habe das nun anders gelöst. Ich merke mir beim Auslesen einfach die Anzahl der Bilder für November und ziehe die dann beim nächsten Schleifendurchlauf von der Zahl für Dezember ab. Fertig. So erhalte ich die Differenz, welche ich haben will.

Allerdings wäre es sicherlich auch net zu erfahren, ob es dafür auch eine andere Lösung gibt.

Grüße Ben.
imported_Ben ist offline   Mit Zitat antworten
Alt 23.11.2004, 13:53  
Erfahrener Benutzer
 
Registriert seit: 13.12.2003
Beiträge: 221
Bronks
Standard

Code:
SELECT x.bildergesamtmonat,
(select sum(bilder) from testtabelle where monat = x.monat-1) AS bildervormonat 
FROM [select *, sum(bilder) as bildergesamtmonat from testtabelle where group by jahr, monat]. AS x;
Jetzt hab ich verstanden ... Ist zwar nicht ganz vollständig, aber die Logik sollte rüberkommen.
Bronks ist offline   Mit Zitat antworten
Alt 24.11.2004, 10:15  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke. Allerdings bin ich mit der obigen Lösung ganz zufrieden
Habe das noch etwas ausgefeilt und jetzt ist es ganz nett geworden. Vor allem simpel. ^^


Aber trotzdem: 'Danke'. I
ch werde mir das mal anschauen.

Grüße Ben.
imported_Ben ist offline   Mit Zitat antworten
Alt 24.11.2004, 11:11  
Erfahrener Benutzer
 
Registriert seit: 29.08.2003
Beiträge: 216
wurtzel
Standard

für einen monat
Code:
select count(*) as gesamt,sum(if(jahr=$jahr && monat=$monat,1,0)) as neue from testtable
um es für alle monate einzeln aus zurechnen
Code:
select jahr,monat,count(*),(select count(*) from testtable) as gesamt from testtable group by jahr, monat
so was reicht doch aus oder?
__________________
Das Problem ist der Anfang einer Lösung
wurtzel ist offline   Mit Zitat antworten
Alt 24.11.2004, 11:43  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von wurtzel
Code:
select count(*) as gesamt,sum(if(jahr=$jahr && monat=$monat,1,0)) as neue from testtable
so was reicht doch aus oder?
hmmm.
ähem. also ich kann das gerade nicht testen, aber könntest du mir mal die funktionsweise des zweitens sum() erklären ...

ich danke dir.

edit:
da das design zerschossen wurde habe ich die letzten beiträge mal gelöscht und meinen editiert.

das lag eventuell daran dass ich php-tags in einem quote-tag hatte? keine ahnung. mit mit code-tags geht es.
imported_Ben ist offline   Mit Zitat antworten
Alt 24.11.2004, 11:53  
Erfahrener Benutzer
 
Registriert seit: 29.08.2003
Beiträge: 216
wurtzel
Standard

so noch mal die erklärung

mit if prüfen ob es der gewählte monate und jahr ist wenn ja 1 wenn nein 0
und das dann aufsummiert
__________________
Das Problem ist der Anfang einer Lösung
wurtzel ist offline   Mit Zitat antworten
Alt 24.11.2004, 12:15  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von wurtzel
mit if prüfen ob es der gewählte monate und jahr ist wenn ja 1 wenn nein 0
und das dann aufsummiert
cool. eigentlich ganz simpel, sieht nur schwer aus

ich werde das mal testen. danke nochmals.
imported_Ben ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mysql Server Einstellunen Optimieren pchero Datenbanken 3 01.05.2007 19:50
von mysql tabellen die größe in bytes von bestimmten zeilen Blank Datenbanken 5 07.08.2006 15:40
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
Schnittstelle zwischen PHP und MySQL klappt net !!! Datenbanken 16 16.10.2005 14:24
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
MYSQL läuft nur wenn /tmp auf 777 Datenbanken 5 06.07.2005 08:38
Mehrere Zeilen aus MySQl ausgeben... King2k PHP Tipps 2005 4 31.05.2005 20:05
[Erledigt] MySQL Zeilen lassen sich nicht kategorisieren Datenbanken 3 24.05.2005 01:15
[Erledigt] MySQL Daten auslesen mit Linien zwischen den Zeilen Datenbanken 4 01.05.2005 15:35
mysql - absätze zwischen verschieden zeilen inhalten Marc PHP Tipps 2005 15 15.04.2005 23:28
Mysql Zeilen in Tabelle beschränkt Datenbanken 9 09.03.2005 23:46
Mysql Version 4.0.15 auf 4.1.7 Problem Ypsillon Datenbanken 1 27.02.2005 14:29
Probleme seit MySQL 4.1.7 Server, Hosting und Workstations 3 21.12.2004 14:17
[Erledigt] mysql Abfrage über 2 hintereinander liegende Zeilen Datenbanken 4 01.08.2004 20:35
[Erledigt] PHP5 &a m p; MySQL Datenbanken 5 01.08.2004 05:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql differenz zwei zeilen, mysql differenz zeilen, http://www.php.de/datenbanken/12774-mysql-4-1-7-subselects-unterschiede-zw-zeilen.html, insert into subselect sql php, mysql mehrere sub select, mehrfache subselects mysql, mysql subselect mit mehreren zeilen, mysql vergleich zweier zeilen, mysql where vergleich zweier zeilen, mysql subselect where zwei mal, mysql mehrere subselects, subselect mysql mehrere, mysql select wo zeilen unterschied, mit select befehl in bestimmten datensatz herausselektieren, mysql zeilen differenz, subselects mysql, differenz zwei zeilen mysql, subselect erklärung, mysql vergleich zweier datensätze, mysql differenz von zwei subselects

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:07 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.