public string ajaKyselyParametreilla(string query, ITeamParams teamParams) { SQLiteCommand dbCmd = luoKomento(query); addTeamParams(teamParams, dbCmd); return(toteutaKysely(dbCmd)); }
public string haePelaajat( ITeamParams teamParams ) { Modifier sarjajakoMod = filters.sarjajako(teamParams.sarjajako); Modifier kotiMod = filters.koti(teamParams.koti, false); Modifier tulosMod = filters.tulos(teamParams.tulos, false); Modifier vastustajaMod = filters.vastustaja(teamParams.vastustaja, false); Modifier joukkueMod = filters.joukkue(teamParams.joukkue); Modifier vuosittainMod = filters.vuosittain(teamParams.vuosittain); string query = $@" BEGIN; SELECT p.nimi Nimi, {vuosittainMod.Erittely} {joukkueMod.Erittely} {kotiMod.Erittely} {tulosMod.Erittely} {vastustajaMod.Erittely} {sarjajakoMod.Erittely} COUNT(o.ottelu_id) Ottelut, SUM(ku) Kunnarit, SUM(ly) Lyödyt, SUM(ku+ly) 'K + L yht.', SUM(tu) Tuodut, SUM(ly+tu+ku) 'Tehopist. yht', SUM(lv) LV, SUM(kl1+kl2+kl3+kl4) KL, SUM(kl1) `KL->1`, SUM(kl2) `KL->2`, SUM(kl3) `KL->3`, ROUND(100.0*SUM( CASE WHEN koti_id = ot.joukkue_id THEN kp > vp WHEN vieras_id = ot.joukkue_id THEN vp > kp END )/COUNT(DISTINCT o.ottelu_id),2) 'Voitto-%', ROUND(1.0*SUM(ku)/COUNT(o.ottelu_id),2) 'Kunnarit per ottelu', ROUND(1.0*SUM(ly)/COUNT(o.ottelu_id),2) 'Lyödyt per ottelu', ROUND(1.0*SUM(ku+ly)/COUNT(o.ottelu_id),2) 'K + L per ottelu', ROUND(1.0*SUM(tu)/COUNT(o.ottelu_id),2) 'Tuodut per ottelu', ROUND(1.0*SUM(ly+tu+ku)/COUNT(o.ottelu_id),2) 'Tehopist. yht per ottelu', ROUND(1.0*SUM(lv)/COUNT(o.ottelu_id),2) 'LV per ottelu', ROUND(1.0*SUM(kl1+kl2+kl3+kl4)/COUNT(o.ottelu_id),2) 'KL per ottelu', ROUND(1.0*SUM(kl1)/COUNT(o.ottelu_id),2) 'KL->1 per ottelu', ROUND(1.0*SUM(kl2)/COUNT(o.ottelu_id),2) 'KL->2 per ottelu', ROUND(1.0*SUM(kl3)/COUNT(o.ottelu_id),2) 'KL->3 per ottelu', { (teamParams.vuosittain ? "" : @" ROUND(1.0*SUM(ku)/COUNT(DISTINCT kausi),2) 'Kunnarit per kausi', ROUND(1.0*SUM(ly)/COUNT(DISTINCT kausi),2) 'Lyödyt per kausi', ROUND(1.0*SUM(ku+ly)/COUNT(DISTINCT kausi),2) 'K + L per kausi', ROUND(1.0*SUM(tu)/COUNT(DISTINCT kausi),2) 'Tuodut per kausi', ROUND(1.0*SUM(ly+tu+ku)/COUNT(DISTINCT kausi),2) 'Tehopist. yht per kausi', ROUND(1.0*SUM(lv)/COUNT(DISTINCT kausi),2) 'LV per kausi', ROUND(1.0*SUM(kl1+kl2+kl3+kl4)/COUNT(DISTINCT kausi),2) 'KL per kausi', ROUND(1.0*SUM(kl1)/COUNT(DISTINCT kausi),2) 'KL->1 per kausi', ROUND(1.0*SUM(kl2)/COUNT(DISTINCT kausi),2) 'KL->2 per kausi', ROUND(1.0*SUM(kl3)/COUNT(DISTINCT kausi),2) 'KL->3 per kausi', ") } MAX(ku + ly) `Maks lyodyt yht ottelussa`, MAX(ku+0) `Maks kunnarit ottelussa`, MAX(ly+0) `Maks lyödyt ottelussa`, MAX(tu+0) `Maks tuodut ottelussa`, MAX(ku + ly + tu) `Maks Tehopist. ottelussa`, MAX(kl1+kl2+kl3+kl4) `Maks KL ottelussa`, MAX(kl1) `Maks KL->1 ottelussa`, MAX(kl2) `Maks KL->2 ottelussa`, MAX(kl3) `Maks KL->3 ottelussa`, MAX(lv+0) `Maks LV ottelussa`, ROUND(1.0*SUM(kl1+kl2+kl3+kl4)/SUM(lv),2) 'KL per LV', ROUND(1.0*SUM(kl1)/SUM(lv),2) 'KL->1 per LV', ROUND(1.0*SUM(kl2)/SUM(lv),2) 'KL->2 per LV', ROUND(1.0*SUM(kl3)/SUM(lv),2) 'KL->3 per LV', ROUND(1.0*SUM(kl4)/SUM(lv),2) 'K + L per LV', ROUND(1.0*SUM(ku)/SUM(lv),3) 'Kunnarit per LV', ROUND(1.0*SUM(ly)/SUM(lv),2) 'Lyödyt per LV', ROUND(1.0*SUM(tu)/SUM(lv),2) 'Tuodut per LV', ROUND(1.0*SUM(kl4+tu)/SUM(lv),2) 'Tehopist. per LV', SUM(palkinto = 'A') `Kentän paras`, SUM(palkinto = 'I') `1 palkinto`, SUM(palkinto = 'II') `2 palkinto`, SUM(upp = 'L') 'Lukkari', SUM(upp = 'S') 'Sieppari', SUM(upp = '1V') '1-vahti', SUM(upp = '2V') '2-vahti', SUM(upp = '3V') '3-vahti', SUM(upp = '2P') '2-polttaja', SUM(upp = '3P') '3-polttaja', SUM(upp = '2K') '2-koppari', SUM(upp = '3K') '3-koppari', SUM(pelaaja_nro = '10' OR pelaaja_nro = '11' OR pelaaja_nro = '12') 'jokeri', SUM(pelaaja_nro = '1') 'Nro 1', SUM(pelaaja_nro = '2') 'Nro 2', SUM(pelaaja_nro = '3') 'Nro 3', SUM(pelaaja_nro = '4') 'Nro 4', SUM(pelaaja_nro = '5') 'Nro 5', SUM(pelaaja_nro = '6') 'Nro 6', SUM(pelaaja_nro = '7') 'Nro 7', SUM(pelaaja_nro = '8') 'Nro 8', SUM(pelaaja_nro = '9') 'Nro 9', SUM(pelaaja_nro = '10') 'Nro 10', SUM(pelaaja_nro = '11') 'Nro 11', SUM(pelaaja_nro = '12') 'Nro 12', {vuosittainMod.Erittely2} COUNT(DISTINCT joukkue) 'Joukkueet yht.', REPLACE( GROUP_CONCAT( DISTINCT joukkue), ',', ', ') Joukkueet FROM ottelu_tilasto ot INNER JOIN ottelu o ON ot.ottelu_id = o.ottelu_id AND sarja = @sarja AND tila != 'ottelu ei ole vielä alkanut' AND kausi BETWEEN @kaudetAlku AND @kaudetLoppu {sarjajakoMod.Filter} {tulosMod.Filter} {vastustajaMod.Filter} {joukkueMod.Filter} INNER JOIN pelaaja p ON ot.pelaaja_id = p.pelaaja_id INNER JOIN joukkue j ON {kotiMod.Filter} GROUP BY ot.pelaaja_id {vuosittainMod.Group} {kotiMod.Group} {tulosMod.Group} {vastustajaMod.Group} {sarjajakoMod.Group} {joukkueMod.Group} ORDER BY `Tehopist. yht` DESC; COMMIT; "; return(dBHandler.ajaKyselyParametreilla(query, teamParams)); }
public string haeJoukkueet( ITeamParams teamParams ) { string joukkueFilter = filters.joukkue(teamParams.joukkue).Filter; Modifier sarjajakoMod = filters.sarjajako(teamParams.sarjajako); Modifier kotiMod = filters.koti(teamParams.koti, true); Modifier tulosMod = filters.tulos(teamParams.tulos, true); Modifier vastustajaMod = filters.vastustaja(teamParams.vastustaja, true); Modifier vuosittainMod = filters.vuosittain(teamParams.vuosittain); string query = $@" BEGIN; SELECT j.joukkue Joukkue, {vuosittainMod.Erittely} {sarjajakoMod.Erittely} {kotiMod.Erittely} {tulosMod.Erittely} {vastustajaMod.Erittely} count(*) Ottelut, SUM(p) Pisteet, SUM(`3p`) `3p`, SUM(`2p`) `2p`, SUM(`1p`) `1p`, SUM(`0p`) `0p`, SUM(`1j`+`2j`+k+s) Tehdyt, SUM(`v1j`+`v2j`+vk+vs) Päästetyt, SUM(`1j`) `1j Tehdyt`, SUM(`2j`) `2j Tehdyt`, SUM(`s`) `S Tehdyt`, SUM(`k`) `K Tehdyt`, SUM(`v1j`) `1j Päästetyt`, SUM(`v2j`) `2j Päästetyt`, SUM(`vs`) `S Päästetyt`, SUM(`vk`) `K Päästetyt`, SUM(INSTR(tulos,'s')=0 AND INSTR(tulos,'k')=0) '2 jakson pelit', SUM(INSTR(tulos,'s')>0) 'Supervuoroon', SUM(INSTR(tulos,'k')>0) 'Kotariin', SUM(aloittaja) 'Aloittava sisävuoro', SUM(aloittaja=0) 'Aloittava ulkovuoro', SUM(svaloittaja) 'Aloittava sisävuoro superissa', SUM(INSTR(tulos,'s')>0)+SUM(INSTR(tulos,'k')>0)-SUM(svaloittaja) 'Aloittava ulkovuoro superissa', {vuosittainMod.Erittely2} ROUND(AVG(CAST(CASE WHEN kotib THEN katsojamaara END AS INTEGER)),0) `Katsoja-keskiarvo`, ROUND(AVG(CAST(CASE WHEN kotib<>1 THEN katsojamaara END AS INTEGER)),0) `Katsoja-keskiarvo vieraissa` FROM joukkue j INNER JOIN puoli_ottelu po ON po.joukkue_id = j.joukkue_id AND tila != 'ottelu ei ole vielä alkanut' AND sarja = @sarja AND kausi BETWEEN @kaudetAlku AND @kaudetLoppu {sarjajakoMod.Filter} {joukkueFilter} {kotiMod.Filter} {tulosMod.Filter} {vastustajaMod.Filter} GROUP BY j.joukkue {vuosittainMod.Group} {kotiMod.Group} {tulosMod.Group} {vastustajaMod.Group} {sarjajakoMod.Group} ORDER BY Pisteet DESC; COMMIT; "; return(dBHandler.ajaKyselyParametreilla(query, teamParams)); }
private static void addTeamParams(ITeamParams teamParams, SQLiteCommand dbCmd) { addBasicParams(teamParams, dbCmd); dbCmd.Parameters.AddWithValue("@joukkue", teamParams.joukkue); dbCmd.Parameters.AddWithValue("@vastustaja", teamParams.vastustaja); }