Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: SQL: Cumulative Sum

mmikko [28.01.2016 18:53:53]

#

Projekti alkaa olla valmis, vielä tästä yhdestä asiasta kiikastaa tällä hetkellä. En kuitenkaan lupaa olla kyselemettä vastaisuudessa. Ongelma on seuraava:

SELECT
    id,
    league,
    @total := @total + bank AS SUM
FROM bets, (SELECT @total:=0) AS t

ylläoleva toimii kyllä, mutta en saa where ehtoa tuohon mukaan. eli haluaisin tuohon where ehtoon sarjan. Onko tuohon mahdollista se laittaa, vai pitääkö muuttaa koko kyselyä?

Kiitos,

-Mikko

Metabolix [28.01.2016 19:13:00]

#

Miten niin et saa ehtoa mukaan? Testasin tällaisella kyselyllä, ja hyvin toimi:

SELECT
  tunnus,
  lukukerrat,
  @total := @total + lukukerrat AS summa
FROM opas
JOIN aihe ON aihe.id = opas.aihe_id
JOIN (SELECT @total := 0) AS t
WHERE opas.tunnus LIKE "cpp_ohj_%"
ORDER BY opas.tunnus ASC
tunnus      lukukerrat   summa
cpp_ohj_01  90425        90425
cpp_ohj_02  49845       140270
cpp_ohj_03  43348       183618
...

mmikko [28.01.2016 23:23:06]

#

Ongelma oli tämä rivi tai siis sen puute itseasiassa:

JOIN (SELECT @total := 0) AS t

en ihan hoksaa tuota sen syvin olemusta, mutta jokatapauksessa kiitos paljon avusta!

-Mikko

Grez [28.01.2016 23:51:56]

#

(Kysessä on ilmeisesti MySQL)

Sen syvin olemus on alustaa tuo @total muuttuja.

Tuonhan voisi tehdä myös näin:

SET @total:=0;
SELECT
    id,
    league,
    @total := @total + bank AS SUM
FROM bets
WHERE sarja='4. divisioona'

Tossa joinina tehtävässä versiossa on se hyvä puoli, että se toimii myös tilanteissa, joissa tietokannalle ei voi ajaa kuin yhden komennon kerrallaan.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta