Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

MySQL - 2 Tabellen - 1 Summe

Frage Entwicklung Datenbanken

Mitglied: jhe1960

jhe1960 (Level 1) - Jetzt verbinden

24.02.2012, aktualisiert 13:44 Uhr, 5797 Aufrufe, 8 Kommentare

Hallo Forum,

ich verzweifel gerade an einem MySQL Query...

ich möchte aus 2 Spalten die sich in 2 verschiedenen Tabellen befinden, eine Summe bilden.

Tabelle1 = f53wb_addontracks2, Feld: Length
Tabelle2 = f53wb_streckenstd, Feld: Length

Diverse Versuche mit z.B.:

01.
SELECT 
02.
  SUM(f53wb_addontracks2.Length), (f53wb_streckenstd.Length) 
03.
FROM 
04.
  f53wb_addontracks2, f53wb_streckenstd
sind nicht erfolgreich gewesen.

Wer mag mir da helfen?

Gruß

Juergen

P.S: es wäre sehr nett, wenn die Antwort nicht zu kryptisch ausfallen würde, da ich ein Laie in Sachen MySQL bin...
Mitglied: dog
24.02.2012 um 18:43 Uhr
Diverse Versuche mit z.B.:

Was sollte da auch passieren?

Ein FROM a,b bildet ein Kreuzprodukt, also jede Zeile von a mal jede Zeile von b.

01.
mysql> SELECT * FROM a; 
02.
+------+ 
03.
| fld  | 
04.
+------+ 
05.
| 1    | 
06.
| 2    | 
07.
+------+ 
08.
2 rows in set (0.00 sec) 
09.
 
10.
mysql> SELECT * FROM b; 
11.
+------+ 
12.
| fld  | 
13.
+------+ 
14.
| a    | 
15.
| b    | 
16.
+------+ 
17.
2 rows in set (0.00 sec) 
18.
 
19.
mysql> SELECT * FROM a,b; 
20.
+------+------+ 
21.
| fld  | fld  | 
22.
+------+------+ 
23.
| 1    | a    | 
24.
| 2    | a    | 
25.
| 1    | b    | 
26.
| 2    | b    | 
27.
+------+------+ 
28.
4 rows in set (0.00 sec)
Was willst du überhaupt?
Von zwei getrennten Tabellen völlig unabhängig die Summe berechnen?
Dann so:
01.
SELECT  
02.
  (SELECT SUM(fld) FROM a) AS col1,  
03.
  (SELECT SUM(fld) FROM b) AS col2;
Bitte warten ..
Mitglied: sam24
24.02.2012 um 22:32 Uhr
Hallo Juergen

ich denke was du haben willst (oder eigentlich nicht haben willst)

01.
SELECT  
02.
  SUM(f53wb_addontracks2.Length + f53wb_streckenstd.Length)  
03.
FROM  
04.
  f53wb_addontracks2, f53wb_streckenstd
das würde die Summe dieser beiden Spalten bilden. ABER: Sql Datenbanken sind mengen, nicht zeilen orientiert. Mit diesem Konstrukt würdest du eine Kartesisches Produkt erzeugen. In den seltensten Fällen ist das gewünscht. Normalerweise werden Tabellen über eindeutige Werte / Schlüssel verknüpft.

Was ist das ? guggscht du hier http://de.wikipedia.org/wiki/Kartesisches_Produkt

Gruß Sam
Bitte warten ..
Mitglied: jhe1960
25.02.2012 um 10:03 Uhr
Zitat von dog:
Was willst du überhaupt?
Von zwei getrennten Tabellen völlig unabhängig die Summe berechnen?
Dann so:
01.
> SELECT  
02.
>   (SELECT SUM(fld) FROM a) AS col1,  
03.
>   (SELECT SUM(fld) FROM b) AS col2; 
04.
> 

Wie ich Eingangs geschrieben habe, die Summe aus beiden Tabellen 1 Summe bilden.

Tabelle1 Tabelle2
150 200
300 75

Summe: 725

Wie würde ich denn col1 und col2 zusammen bekommen?

Gruß

Juergen

@dog & sam24

vielen Dank für die ausführliche Erklärung.
Bitte warten ..
Mitglied: sam24
25.02.2012 um 10:33 Uhr
Hallo Juergen,

wenn das wirklich alle Felder deiner Tabelle sind, nur über 2 einzelne Abfragen. Sobald du diese Tabellen verknüpfst, wird dein Ergebnis nicht mehr stimmen (Erklärung siehe oben).

01.
+-----------+  
02.
| Tabelle1  |  
03.
+-----------+  
04.
| 150       |  
05.
| 300       |  
06.
+-----------+  
07.
 
08.
+-----------+  
09.
| Tabelle2  |  
10.
+-----------+  
11.
| 200       |  
12.
| 75        |  
13.
+-----------+  
14.
 
Entweder mit 2 summen leben, oder über ein temporäre Tabelle / stored procedure lösen.

Gruß Sam
Bitte warten ..
Mitglied: nxclass
25.02.2012 um 23:33 Uhr
Wenn dann mit Union verbinden
01.
SELECT SUM(x.`sum`) FROM ( 
02.
 
03.
  SELECT SUM(`Length`) AS 'sum' FROM `f53wb_addontracks2` 
04.
  UNION 
05.
  SELECT SUM(`Length`) AS 'sum' FROM `f53wb_streckenstd` 
06.
 
07.
) x;
oder gleich
01.
SELECT (SELECT SUM(`Length`) AS 'sum' FROM `f53wb_addontracks2`) + (SELECT SUM(`Length`) AS 'sum' FROM `f53wb_streckenstd`) ;
Bitte warten ..
Mitglied: jhe1960
26.02.2012 um 11:35 Uhr
Moin,

vielen Dank, das hat mir jetzt schon super weiter geholfen. Im PMA wird mir bei der Abfrage schon mal die richtige Summe ausgegeben. Jetzt habe ich nur noch (wahrscheinlich) ein klitzekleines Problemchen...wenn ich das ganze versuche auszugeben, passiert nüschte

01.
<?php 
02.
$sql = "SELECT (SELECT SUM(Length2) AS summe FROM f53wb_addontracks2) + (SELECT SUM(Length) AS summe FROM f53wb_streckenstd)"; 
03.
$result = mysql_query($sql) or die(mysql_error()); 
04.
while ($output = mysql_fetch_assoc($result)) 
05.
06.
echo $result[summe]; //da sollte doch eigentlich die Summe ausgegeben werden? 
07.
08.
?>
Kannst du mir da evtl. auch noch auf die "Sprünge" helfen?

Schönen Sonntag noch.

Juergen
Bitte warten ..
Mitglied: nxclass
26.02.2012 um 12:01 Uhr
... ich sehe Du speicherst das Ergebnis in $output aber fragst $result ab:
01.
echo $output['summe'];
... weiterhin gefällt mir dein Quoting nicht besonders und das SQL Ergebnis hat keinen definierten "Spaltennamen".
01.
$sql = <<<__SQL__ 
02.
SELECT (SELECT SUM(`Length2`) FROM `f53wb_addontracks2`) + (SELECT SUM(`Length`) FROM `f53wb_streckenstd`) AS 'summe' 
03.
__SQL__;
Bitte warten ..
Mitglied: jhe1960
18.08.2013, aktualisiert um 13:29 Uhr
Moinsen,
ich bin jetzt schon ein Stück weiter, hänge aber noch an 1 Problem. Vielleicht ist jemand so nett und hilft mir weiter...

Mit folgendem Schnipsel selektiere ich Datensätze für eine Ausgabe. Jetzt möchte ich noch die Option einbauen, dass man alle Datensätze (track) auswählen kann, um sich die Anzeigen zu lassen.

01.
<?php 
02.
include('dbconnection.php'); 
03.
 
04.
$sql="SELECT ID, TrackTitle FROM tracks ORDER BY TrackTitle ASC"; 
05.
 
06.
$result = mysql_query($sql); 
07.
 
08.
echo "<select name=\"track\" id=\"track\" onmouseover=\"Tip('<b>$trackFilter</b><br />$trackFilterText', BALLOON, true, ABOVE, true)\" onmouseout=\"UnTip()\">"; 
09.
echo "<option value=\"\">$tracks</option>"; 
10.
 
11.
while($row = mysql_fetch_array($result)) 
12.
13.
  if($isUTF8Encode) echo "<option value=\"".$row['ID']."\">" . utf8_encode($row['TrackTitle']) . "</option>"; 
14.
  else  echo "<option value=\"".$row['ID']."\">" .$row['TrackTitle']. "</option>"; 
15.
16.
echo "</select>"; 
17.
 
18.
mysql_close($con); 
19.
?>
Hier sieht man das Live: http://www.project-race.de/tracker/boxengasse.html

Bei dem Dropdown "Strecken" soll die Möglichkeit gegeben sein, alle Strecken auszuwählen.

Sonntägliche Grüße,
Juergen
Bitte warten ..
Ähnliche Inhalte
Debian
Mysql Tabellen updaten von 2 Server
Frage von chatgodDebian1 Kommentar

Hallo liebe Kollegen, ich hab ein Problem und finde derzeit keine Lösung dafür, und ich hoffe das mir jemand ...

PHP
MYSQL Abfrage von 2 identischen Tabellen
gelöst Frage von datadexxPHP5 Kommentare

Hi an alle MYSQL Profis, ich hätte folgende Frage. Ich habe 2 Tabellen (kstamm, ustamm), diese sind vom Aufbau ...

Datenbanken
MSSQL-Benutzer . Zugriff nur auf 2 Tabellen und 1 View
gelöst Frage von SnuffchenDatenbanken3 Kommentare

Hallo zusammen, kann man beim MSSQL-Server eine Benutzer so mit Rechten ausstatten, dass er nur auf 2 definierte Tabellen ...

Datenbanken
SQL Trigger über 2 Tabellen mit 1 Bedingung
gelöst Frage von holiboliDatenbanken1 Kommentar

Hallo ich versuche einen Trigger zu erstellen der mir die Werte von: LAG_Statistik.MengeEin in LAG_Artikel.Z_MengeEin LAG_Statistik.MengeAUS in LAG_Artikel.Z_MengeAUS LAG_Statistik.Datum ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 13 StundenBatch & Shell8 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 15 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Batch & Shell
Neuste Datei via PowerShell kopieren
gelöst Frage von kaiuwe28Batch & Shell11 Kommentare

Hallo zusammen, ich hatte mir mit Hilfe der Suche im Forum einen kleinen Code von colinardo rausgesucht und versucht ...