public string ajaKyselyParametreilla(string query, ITuomariParams tuomariParams) { SQLiteCommand dbCmd = luoKomento(query); addTuomariParams(tuomariParams, dbCmd); return(toteutaKysely(dbCmd)); }
private static void addTuomariParams(ITuomariParams tuomariParams, SQLiteCommand dbCmd) { addBasicParams(tuomariParams, dbCmd); dbCmd.Parameters.AddWithValue("@kotijoukkue", tuomariParams.kotijoukkue); dbCmd.Parameters.AddWithValue("@vierasjoukkue", tuomariParams.vierasjoukkue); dbCmd.Parameters.AddWithValue("@lukkari", tuomariParams.lukkari); }
public string haeTuomarit( ITuomariParams tuomariParams ) { string STPTFilter = filters.stpt(tuomariParams.STPT); Modifier sarjajakoMod = filters.sarjajako(tuomariParams.sarjajako); Modifier vuosittainMod = filters.vuosittain(tuomariParams.vuosittain); Modifier kotiMod = filters.kotiJoukkue(tuomariParams.kotijoukkue); Modifier vierasMod = filters.vierasJoukkue(tuomariParams.vierasjoukkue); Modifier lukkariMod = filters.lukkari(tuomariParams.lukkari); string query = $@" BEGIN; SELECT tuomari Tuomari, COUNT(DISTINCT o.ottelu_id) Ottelut, {vuosittainMod.Erittely} {sarjajakoMod.Erittely} {kotiMod.Erittely} {vierasMod.Erittely} {lukkariMod.Erittely} SUM(kp>vp) Kotivoitto, SUM(kp<vp) Vierasvoitto, ROUND( 100.0*SUM(kp>vp)/COUNT(DISTINCT o.ottelu_id),2) `Kotivoitto-%`, ROUND( 1.0*SUM(k1j+k2j+v1j+v2j+ks+vs+kk+vk)/COUNT(DISTINCT o.ottelu_id),2) `juoksut/ott`, ROUND( 1.0*SUM(k1j+k2j+ks+kk)/COUNT(DISTINCT o.ottelu_id),2) `K-juoksut/ott`, ROUND( 1.0*SUM(v1j+v2j+vs+vk)/COUNT(DISTINCT o.ottelu_id),2) `V-juoksut/ott`, ROUND( 1.0*SUM( vttot) / COUNT( DISTINCT o.ottelu_id),2) `VT / ott`, SUM( vttot ) `VT yht.`, ROUND( 1.0*SUM( vt ) / COUNT( DISTINCT o.ottelu_id), 2) `VT juoksut / ott`, ROUND( 1.0*SUM( vtk ) / COUNT( DISTINCT o.ottelu_id), 2) `VT juoksut koti`, ROUND( 1.0*SUM( vtv ) / COUNT( DISTINCT o.ottelu_id), 2) `VT juoksut vieras`, SUM( vt ) `VT juoksut yht.`, { (tuomariParams.vuosittain ? "" : @" ROUND( 1.0*COUNT( DISTINCT o.ottelu_id) / COUNT( DISTINCT kausi), 1) `Ott / kausi`, ") } {vuosittainMod.Erittely2} SUM(tuomari = pelituomari) PT, SUM(tuomari = syottotuomari) ST FROM ottelu o INNER JOIN (SELECT DISTINCT tuomari FROM tuomari) t ON 1 AND o.kausi BETWEEN @kaudetAlku AND @kaudetLoppu AND tila != 'ottelu ei ole vielä alkanut' AND sarja = @sarja {sarjajakoMod.Filter} {kotiMod.Filter} {vierasMod.Filter} {STPTFilter} INNER JOIN ( SELECT oo.ottelu_id ottelu_id, SUM(vt1+vt2+vt3+vt4) `vttot`, SUM(CASE WHEN joukkue_id = koti_id THEN vt1+vt2+vt3+vt4 END) `vttotk`, SUM(CASE WHEN joukkue_id = vieras_id THEN vt1+vt2+vt3+vt4 END) `vttotv`, SUM(vt4) `vt`, SUM(CASE WHEN joukkue_id = koti_id THEN vt4 END) `vtk`, SUM(CASE WHEN joukkue_id = vieras_id THEN vt4 END) `vtv` FROM ottelu oo INNER JOIN ottelu_tilasto ot ON ot.ottelu_id = oo.ottelu_id AND kausi BETWEEN @kaudetAlku AND @kaudetLoppu AND tila != 'ottelu ei ole vielä alkanut' AND sarja = @sarja GROUP BY oo.ottelu_id ) vt ON vt.ottelu_id = o.ottelu_id {lukkariMod.Filter} {lukkariMod.Select} GROUP BY tuomari {vuosittainMod.Group} {kotiMod.Group} {vierasMod.Group} {lukkariMod.Group} {sarjajakoMod.Group} ORDER BY 2 DESC ; COMMIT; "; return(dBHandler.ajaKyselyParametreilla(query, tuomariParams)); }