2016-05-01 14 views
0

Dieses Problem stört mich seit einiger Zeit. Ich habe die Aussage gemacht und es funktioniert, da ich alle meine Daten so erhalte, wie ich es möchte.MySQL, wie Werte bei Verwendung von 3 Tabellen summieren

CREATE VIEW `pizza` AS 
SELECT 
    `table1`.`id` AS `id`, 
    `table1`.`name` AS `name`, 
    `table2`.`name` AS `rb_name`, 
    `table3`.`netto` AS `min`, 
    `table3`.`netto` AS `max` 
FROM 
    ((`table1` 
    JOIN `table3` ON ((`table1`.`id` = `table3`.`id`))) 
    JOIN `table2` ON ((`table2`.`t1_id` = `table3`.`t1_id`))) 

Jetzt ist das Problem, dass ich den minimalen und maximalen Wert in der Tabelle SUMMEN möchte. Aber wenn ich das tue, gehe ich von einer Liste der Ergebnisse zu nur 1 Ergebnis. Diese ist der Code i auf die SELECT-Anweisungen fügen, wo ich die Min- und Max-Wert:

 SUM((`table3`.`netto` - `table3`.`tolerance`)) AS `min`, 
     SUM((`table3`.`netto` + `table3`.`tolerance`)) AS `max`, 

Ich weiß nicht, wie um ihn zu arbeiten. Meine Datenbankstruktur ist wie folgt:

Tabelle 1 hat die Spalten "rb_id" und "rb_name".

Tabelle 2 enthält Spalten "ID", "Name" und andere, die hier nicht verwendet werden.

Tabelle 3 verbindet sie beide durch „rb_id“ und „id“ mit dem „Netto“ und „Toleranz“ Werte

+0

Was enthält Tabelle3? Können Sie Ihre Datenbankstruktur besser erklären und wie sich table3 auf table1 und table2 bezieht? – fthiella

Antwort

1

mit glaube ich Ihnen eine Gruppe von Klausel für eine Aggregationsfunktion (Summe)

brauchen
SELECT 
    `table1`.`id` AS `id`, 
    `table1`.`name` AS `name`, 
    `table2`.`name` AS `rb_name`, 
    SUM((`table3`.`netto` - `table3`.`tolerance`)) AS `min`, 
    SUM((`table3`.`netto` - `table3`.`tolerance`)) AS `max`, 
FROM 
    ((`table1` 
    JOIN `table3` ON ((`table1`.`id` = `table3`.`id`))) 
    JOIN `table2` ON ((`table2`.`t1_id` = `table3`.`t1_id`))) 
GROUP BY `table1`.`id` , `table2`.`name` ; 
+0

das war was ich brauchte. Es zeigt mir nun eine Ergebnisliste mit der SUM von min und max für jeden Gegenstand. Vielen Dank !! – Kingfox

+0

@Kingfox Eine Frage: Was ist der Unterschied zwischen Ihren Spalten '\' min \ '' und '\' max \ ''? Sie sind gleich berechnet. Ein Tippfehler? – PerlDuck

+1

Ja, es ist ein Tippfehler, aber ich erkannte zuerst, dass, nachdem es funktioniert hat :) Ich habe den Beitrag bearbeitet, also enthält es ihn nicht mehr. – Kingfox

Verwandte Themen