2017-11-12 2 views
-1

Ich brauche die Summe von verschiedenen Spalten zur Gruppe:SUM und GROUP BY diferent Spalten

SUM1 Gruppe von Banco_Recarga

SUM2 Gruppe von BancoRetiro

SELECT Banco_Recarga, BancoRetiro, bancos_recargas.banco, 
SUM(CASE WHEN Tipo='1' AND (Status = '1' OR Status = '2') THEN '1' ELSE 0 END) AS SUM1, 
SUM(CASE WHEN Tipo='2' AND (Status = '1' OR Status = '2') THEN '1' ELSE 0 END) AS SUM2 
FROM transaccionesrr 
INNER JOIN bancos_recargas ON (transaccionesrr.Banco_Recarga = bancos_recargas.id) 
WHERE Fecha_Recarga BETWEEN '2017-11-01' AND '2017-11-10' GROUP BY Banco_Recarga ORDER BY SUM1; 

Ich habe stundenlang gesucht, aber ich Es kann keine Lösung

+1

benötigen Sie höchstwahrscheinlich 2 Abfragen, und Sie können nicht nach einer Spalte suchen, die nicht existiert, woher kommt 'Recargas'? Ist es ein Spaltenalias? –

+0

Sorry war mein Fehler, es ist SUM1 –

+0

auch, ohne Beispieldaten zu betrachten PLUS ein erwartetes Ergebnis zu betrachten, sind Ihre Bedürfnisse für uns völlig unsichtbar. –

Antwort

0

diese finden Versuchen:

SELECT 
     CASE 
      WHEN Tipo = '1' AND (Status = '1' OR Status = '2') THEN Banco_Recarga 
      WHEN Tipo = '2' AND (Status = '1' OR Status = '2') THEN BancoRetiro 
      ELSE 'Unexpected' 
     END AS banco 
     , SUM(CASE WHEN Tipo = '1' AND (Status = '1' OR Status = '2') THEN '1' ELSE 0 END) AS sum1 
     , SUM(CASE WHEN Tipo = '2' AND (Status = '1' OR Status = '2') THEN '1' ELSE 0 END) AS sum2 
    FROM transaccionesrr 
    INNER JOIN bancos_recargas ON (transaccionesrr.Banco_Recarga = bancos_recargas.id) 
    WHERE Fecha_Recarga BETWEEN '2017-11-01' AND '2017-11-10' 
    GROUP BY 
     CASE 
      WHEN Tipo = '1' AND (Status = '1' OR Status = '2') THEN Banco_Recarga 
      WHEN Tipo = '2' AND (Status = '1' OR Status = '2') THEN BancoRetiro 
      ELSE 'Unexpected' 
     END 
    ORDER BY sum1, sum2 

Möglicherweise müssen Sie der Where-Klausel Bedingungen hinzufügen.

+0

Sie tun Gottes Arbeit hier Mann, danke für Ihre Antwort, es hat sehr gut funktioniert –