Пример #1
0
        public string ajaKyselyParametreilla(string query, ITuomariParams tuomariParams)
        {
            SQLiteCommand dbCmd = luoKomento(query);

            addTuomariParams(tuomariParams, dbCmd);
            return(toteutaKysely(dbCmd));
        }
Пример #2
0
 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);
 }
Пример #3
0
        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));
        }