2016-05-27 16 views
0

Ich habe eine Tabelle, die verschiedene Spalten unterschiedliche Werte anzeigen.So zeigen Sie 1 Spalte Summe in anderen Spalte an

Ich muss eine neue Spalte hinzufügen, die Summe von 1 Spalte in jeder Zeile der anderen Spalte anzeigt.

Dies ist, was ich anzeigen muss.

Ich habe folgende Abfrage geschrieben, aber es zeigt nur 1 in jeder Zeile der letzten Spalte.

select inStation.name TapInStation , outStation.name TapOutStation, 
     count(trx.passengerCount) PassengerCount, sum(trx.amount) Fare, 

     (select sum(passengerCount) from transactions iTrx 
     where iTrx.ID = trx.ID) PassengerPercent     

    from transactions trx 
    inner join 
    station inStation on inStation.ID = trx.fromStation 
    inner join 
    station outStation on outStation.ID = trx.toStation 

    GROUP BY 
    TapInStation, TapOutStation 

Antwort

1

Wenn Sie die Summe möchten, dann entfernen Sie die Korrelationsklausel. Dies kann das tun, was Sie wollen:

select inStation.name as TapInStation , outStation.name as TapOutStation, 
     count(trx.passengerCount) as PassengerCount, 
     sum(trx.amount) as Fare, 
     (select sum(passengerCount) from transactions iTrx) as PassengerPercent 

Ich bin nicht sicher, warum Sie würden die „total“ so etwas wie PassengerPercent genannt, aber dies sollte die Gesamtsumme zurück.

Ich vermute auch, dass Sie eine sum() für den vorherigen Ausdruck möchten.

+0

Danke, es funktioniert .. Eigentlich muss ich den Prozentsatz jeder Zeile in die 'letzte Spalte' setzen, indem ich die Gesamtsumme mit jeder Zeile total aufspalte. Aber ich versagte darin, die erste Sache richtig zu machen. – Kirmani88

Verwandte Themen