2016-07-02 4 views
0

Ich werde versuchen Summe dieser zu erhalten:Wie Summe von Gallon, Milliliter und Liter in mysql bekommen

3 Liter/s

5 ml/s

s Liter/

4 Gallonen

die endgültige Antwort ist dies s 6,1240040 Gallonen/

und jetzt ist es ! aber ich weiß nicht, wie man seine Einheit bestimmt.

 select SUM(CASE WHEN unit = 'liter/s' AND Quantity >= 3.785 then 
      Quantity/3.785 
      WHEN unit = 'liter/s' AND Quantity < 3.785 then Quantity/1000 
      WHEN unit = 'gallon/s' THEN Quantity 
      WHEN Unit = 'mL/s' AND Quantity <= 1000 THEN Quantity/1000 
      END) AS 'RESULT' from raw 

Bitte helfen Sie mir. Ich muss dieses Projekt bestehen.

+2

Wählen Sie eine Einheit als Ergebnis und ändern Sie alle diese Werte in diese Einheit und addieren Sie sie dann zusammen. – Rizier123

+0

wählen Sie CONCAT (SUM (Menge * Fall, wenn Einheit = 'mL/s' dann 1 wenn Einheit = 'Liter/s' dann 1000 wenn Einheit = 'Gallone/s' 3.785)) als 'Ergebnis' von Produkt –

+0

Das ist mein Code jetzt aber das Ergebnis ist falsch. –

Antwort

0
select CONCAT(SUM(Quantity * Case when Unit like '%mL/s%' then 1 when Unit like '%liter/s%' then 1000 when Unit like '%gallon/s%' then 3.785)) as 'result' from product 

die obige Abfrage verwenden, die Sie

für die Daten arbeiten sollten
0
select SUM((Case when Unit = 'mL/s' then 1 
when Unit = liter/s' then 1000 
when Unit='gallon/s' then 3785.41 end case)*Quantity) 
as 'result' from product 

Sie brauchen nicht concat ihre

Erklärung case-Anweisung gegeben haben, werden die erforderlichen Einheiten in ml zurückzukehren und dann wird es mit der Menge multipliziert, dann erhalten Sie die Summe aller Werte Sie erhalten das Endergebnis in ml

+0

kann deutlich sehen, die Syntax ist gebrochen – charlietfl

+0

aktualisiert die Abfrage –

+0

Ok Ihre Antwort ist richtig, aber wie berechnet man, wenn das Ergebnis größer als oder gleich 3,785 ist, dann wird die Antwort durch 3,785 dividieren? –