Risposta breve, sì risposta
più lungo, è possibile utilizzare una variabile per coincidere in su come si itera le file, vale a dire
SELECT
`table`.`ID`,
`table`.`In`,
`table`.`Out`,
@Balance := @Balance + `table`.`In` - `table`.`Out` AS `Balance`
FROM `table`, (SELECT @Balance := 0) AS variableInit
ORDER BY `table`.`ID` ASC
Il , (SELECT @Balance := 0) AS variableInit
assicura che @Balance è inizializzato a 0 prima si inizia Per ogni riga, quindi, imposta @Balance su @Balance + In - Out
, quindi restituisce il valore calcolato.
Inoltre vale la pena accertarsi che l'ORDINE sia coerente, altrimenti il Saldo varierà in base all'ordine di restituzione delle righe. Se si voleva poi ordinarlo posteriore a quella anteriore, per esempio, è possibile utilizzare questo come una sottoquery come allora le offerte di query esterne con i valori calcolati in modo da garantire il saldo rimane corretta cioè
SELECT
`balanceCalculation`.`ID`,
`balanceCalculation`.`In`,
`balanceCalculation`.`Out`,
`balanceCalculation`.`Balance`
FROM (
SELECT
`table`.`ID`,
`table`.`In`,
`table`.`Out`,
@Balance := @Balance + `table`.`In` - `table`.`Out` AS `Balance`
FROM `table`, (SELECT @Balance := 0) AS variableInit
ORDER BY `table`.`ID` ASC
) AS `balanceCalculation`
ORDER BY `balanceCalculation`.`ID` DESC
fonte
2012-02-22 12:11:13
how con paginazione, penso che questa domanda non funziona bene, la bilancia non vanno bene –
@PutraLZendrato temo che non capisco la questione –
Ciao Simone, voglio dire, come se i dati la riga è grande, Esempio, abbiamo 100 dati, ma non verranno caricati in una pagina. Quindi, ci separiamo in 2 pagine (paginazione funzionante). Penso che il bilanciamento funzionante non funzionerà. –