Esempio n. 1
0
        public string apuSarjat(
            IBasicParams basicParams)
        {
            string query = @"
            BEGIN;
            SELECT DISTINCT sarja
            FROM ottelu o
            WHERE tila != 'ottelu ei ole vielä alkanut'
            AND kausi BETWEEN @kaudetAlku AND @kaudetLoppu
            ORDER BY sarja;
            COMMIT;
            ";

            return(dBHandler.ajaKyselyParametreilla(query, basicParams));
        }
Esempio n. 2
0
        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));
        }