SQL Frage

Steev

(ツ)
Registriert
15 Juli 2013
Beiträge
22.194
Ort
zurück ins Dorf
Hi, gehört SQL hier auch in das Forum?

Wenn ich letztlich so eine Tabelle habe (mit Union Befehl)

[src=text]+-------+----------+----------+------------+-----------+----------+-----------+
| re_id | kunde_id | name | Anz. Fzg. | RB netto | USt | RB brutto |
+-------+----------+----------+------------+-----------+----------+-----------+
| 1 | 2 | Meier | 1 | 5714.29 | 1085.71 | 6800.00 |
| 2 | 3 | von Burg | 3 | 158613.45 | 30136.55 | 188750.00 |
| 3 | 1 | Schmidt | 2 | 25629.41 | 4869.59 | 30499.00 |
| 4 | 2 | Meier | 1 | 8403.36 | 1596.64 | 10000.00 |
| 5 | 3 | von Burg | 1 | 18907.56 | 3592.44 | 22500.00 |
| 6 | 5 | Kaiser | 2 | 43949.58 | 8350.42 | 52300.00 |
| | | | | 261217.65 | 49631.35 | 310849.00 |
+-------+----------+----------+------------+-----------+----------+-----------+[/src]

mit diesem Befehl erstellt
Code:
Expand Collapse Copy
SELECT rechnungen.re_id, kunden.kunde_id, kunden.name, count(re_positionen.re_pos_id) AS "Anz.  Fzg.", round((sum(re_positionen.vk_brutto) / 119 * 100), 2) AS "RB netto", round(sum(re_positionen.vk_brutto / 119 * 19), 2)  AS "USt", sum(re_positionen.vk_brutto) AS "RB brutto" FROM kunden
JOIN Rechnungen ON kunden.kunde_id=rechnungen.kunde_id 
JOIN re_positionen ON re_positionen.re_id=rechnungen.re_id GROUP BY rechnungen.re_id 
UNION SELECT "", "", "", "",  round((sum(re_positionen.vk_brutto) / 119 * 100), 2) AS "RB netto", round(sum(re_positionen.vk_brutto / 119 * 19), 2)  AS "USt", sum(re_positionen.vk_brutto) AS "RB brutto" from re_positionen;
kann man in SQL so einen Tabellen Unterstrich erzeugen, so dass es am Ende so aussieht?

[src=text]+-------+----------+----------+------------+-----------+----------+-----------+
| re_id | kunde_id | name | Anz. Fzg. | RB netto | USt | RB brutto |
+-------+----------+----------+------------+-----------+----------+-----------+
| 1 | 2 | Meier | 1 | 5714.29 | 1085.71 | 6800.00 |
| 2 | 3 | von Burg | 3 | 158613.45 | 30136.55 | 188750.00 |
| 3 | 1 | Schmidt | 2 | 25629.41 | 4869.59 | 30499.00 |
| 4 | 2 | Meier | 1 | 8403.36 | 1596.64 | 10000.00 |
| 5 | 3 | von Burg | 1 | 18907.56 | 3592.44 | 22500.00 |
| 6 | 5 | Kaiser | 2 | 43949.58 | 8350.42 | 52300.00 |
+-------+----------+----------+------------+-----------+----------+-----------+
| | | | | 261217.65 | 49631.35 | 310849.00 |
+-------+----------+----------+------------+-----------+----------+-----------+[/src]

Im Anhang die Datenbank (alle Inhalte frei erfunden)
 

Anhänge

Zuletzt bearbeitet:
SQL gehört definitiv hier rein :T.
Das was du fragst, davon hab ich noch nicht gehört. Am besten du spezifiziert, welches DBMS du verwendest.
Normalerweise trennt man SQL und Darstellung des Ergebnisses, das solltest du auch machen. Also irgendein SQL-Workbench / WebApp / Phpmydamin / ... irgendwas. Zu versuchen SQL an sich zu formatieren, damit wirst du vermutlich nicht glücklich.
Deinen SQL Query solltest du so weder abspeichern noch hat da jemand Lust drauf den so zu lesen. Füge Zeilenumbrüche ein.
 
  • Thread Starter Thread Starter
  • #3
DBMS ist mir ein neuer Begriff, bin noch SQL Anfänger.
Ich nutze MariaDB über xampp falls du das meinst. Ja mir gehts erstmal nur um die Tabellenansicht in der Kommandozeile.
Habe mal den Query angepasst, vllt ist es etwas besser.
 
Hoffe die Einrückung ist so korrekt, richtiges SQL ohne Abstraktion ist schon wieder eine Weile her :D.
So formatiert man jdfs einen komplexeren SQl Query, nicht so wie du das gemacht hast ;).
Bei XAMPP Stack lieferst du ja HTML aus am Ende. Konzentrier dich darauf, dass das dann korrekt aussieht. Die reine Konsolenausgabe detailliert zu formatieren ist Zeitverschwendung und die Möglichkeiten dazu sind soweit ich weiß stark begrenzt.
[src=mysql]
SELECT
rechnungen.re_id,
kunden.kunde_id,
kunden.name,
count(re_positionen.re_pos_id) AS "Anz. Fzg.",
round((sum(re_positionen.vk_brutto) / 119 * 100), 2) AS "RB netto",
round(sum(re_positionen.vk_brutto / 119 * 19), 2) AS "USt",
sum(re_positionen.vk_brutto) AS "RB brutto"
FROM kunden
JOIN Rechnungen
ON kunden.kunde_id = rechnungen.kunde_id
JOIN re_positionen
ON re_positionen.re_id = rechnungen.re_id
GROUP BY rechnungen.re_id
UNION SELECT
"",
"",
"",
"",
round((sum(re_positionen.vk_brutto) / 119 * 100), 2) AS "RB netto",
round(sum(re_positionen.vk_brutto / 119 * 19), 2) AS "USt",
sum(re_positionen.vk_brutto) AS "RB brutto"
FROM re_positionen;
[/src]
 
  • Thread Starter Thread Starter
  • #5
Ja, Danke für die richtige Darstellung
Die reine Konsolenausgabe detailliert zu formatieren ist Zeitverschwendung und die Möglichkeiten dazu sind soweit ich weiß stark begrenzt.
Ja ok, ich dachte es geht vllt mit einem Befehl, da ich aber nichts hier auf meiner Befehlsliste habe, geht es wohl nicht.
 
Zurück
Oben