public static void Get_StringLength(AErgAttribut _Ret)
            {
                LogHelper.LogApp($"{MethodBase.GetCurrentMethod().Name}");

                string sql_cmd_str = $@"
SELECT 
	CAST(MIN(K.[LEN]) AS BIGINT)
,	CAST(AVG(K.[LEN]) AS DECIMAL)
,	CAST(MAX(K.[LEN]) AS BIGINT) FROM (
SELECT LEN(V.A_T) [LEN] FROM (
SELECT CONVERT(NVARCHAR,T.[{_Ret.AttributeName}]) [A_T] FROM {_Ret.Relation} T) V) K;
";

                SqlDataReader _DR = DBManager.ExecuteRead(sql_cmd_str);

                _DR.Read();

                long?   sl_min = _DR.IsDBNull(0) ? (long?)null : _DR.GetInt64(0);
                decimal?sl_avg = _DR.IsDBNull(1) ? (decimal?)null : _DR.GetDecimal(1);
                long?   sl_max = _DR.IsDBNull(2) ? (long?)null : _DR.GetInt64(2);

                _DR.Close();

                if (!sl_min.HasValue || !sl_avg.HasValue || !sl_max.HasValue)
                {
                    throw new ArgumentNullException("SQL Query returned invalid NULL value!");
                }

                _Ret.StringLength_Min = sl_min;
                _Ret.StringLength_Avg = sl_avg;
                _Ret.StringLength_Max = sl_max;
            }
Exemple #2
0
        private static void Anly_Werteverteilung(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "Anly_Werteverteilung" + "()..." + "                               ");

            string        sql_cmd_str = $@"SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS 
WHERE '['+TABLE_SCHEMA+'].['+TABLE_NAME+']' = '{relation}' AND COLUMN_NAME = '{attribut}'";
            SqlDataReader dr          = DBManager.ExecuteRead(sql_cmd_str);

            dr.Read();
            string datatype = dr.GetString(0);

            dr.Close();

            if (NUM_Casttable.Keys.Contains(datatype))
            {
                Stat(ret, relation, attribut, datatype);
                Frequenzdiagramm(ret, relation, attribut);
                Median(ret, relation, attribut, datatype);
                Benfordsche(ret, relation, attribut);
            }
            else
            {
                Stat_Text(ret, relation, attribut);
            }

            Modalwert(ret, relation, attribut);
            Modalwert_Tot(ret, relation, attribut);
            Modalwert_Anteilsm(ret, relation, attribut);
            Standardwert(ret, relation, attribut);
        }
            public static Dictionary <string, List <string> > Remove_MinMax(Dictionary <string, List <string> > pairs, AErgAttribut aErgAttribut)
            {
                Dictionary <string, List <string> > _Ret = new Dictionary <string, List <string> >();
                AErgAttribut _test = null;
                bool         a, b;

                foreach (string _r in pairs.Keys)
                {
                    foreach (string _a in pairs[_r])
                    {
                        _test = DPAnalysis.AttributAnalyse_Results_Sort[_r][_a];
                        if (_test.Datatype_Primitive == "NUM")
                        {
                            a = double.Parse(aErgAttribut.Statistics_Min) <= double.Parse(_test.Statistics_Min);
                            b = double.Parse(aErgAttribut.Statistics_Max) >= double.Parse(_test.Statistics_Max);
                            if (a && b)
                            {
                                if (_Ret.Keys.Contains(_r))
                                {
                                    _Ret[_r].Add(_a);
                                }
                                else
                                {
                                    _Ret.Add(_r, new List <string>(new string[] { _a }));
                                }
                            }
                        }
                        else
                        {
                        }
                    }
                }

                return(_Ret);
            }
            private static void Get_Histogramm_Select(AErgAttribut _Ret)
            {
                LogHelper.LogApp($"{MethodBase.GetCurrentMethod().Name}");

                string conv = _Ret.Datatype_Documented == "float" || _Ret.Datatype_Documented == "real" ?
                              $"FORMAT(T.[{_Ret.AttributeName}], '0.0####################')" :
                              $"CONVERT(NVARCHAR,T.[{_Ret.AttributeName}])";

                string sql_cmd_str = $@"
SELECT { conv }, COUNT_BIG(*) FROM {_Ret.Relation} T 
GROUP BY T.[{_Ret.AttributeName}] ORDER BY T.[{_Ret.AttributeName}];
";

                Dictionary <string, long> hg = new Dictionary <string, long>();

                SqlDataReader _DR = DBManager.ExecuteRead(sql_cmd_str);

                while (_DR.Read())
                {
                    hg.Add(_DR.IsDBNull(0) ? "NULL" : _DR.GetString(0), _DR.GetInt64(1));
                }

                _DR.Close();

                _Ret.Histogramm = hg;
            }
            public static void Get_Count(AErgAttribut _Ret)
            {
                LogHelper.LogApp($"{MethodBase.GetCurrentMethod().Name}");

                if (_Ret.Empty_Allowed.Value)
                {
                    string sql_cmd_str = $@"
SELECT COUNT_BIG(T.[{_Ret.AttributeName}]) [C_A] FROM {_Ret.Relation} T;
";

                    SqlDataReader _DR = DBManager.ExecuteRead(sql_cmd_str);

                    _DR.Read();

                    long?ca_tot = _DR.IsDBNull(0) ? (long?)null : _DR.GetInt64(0);

                    _DR.Close();

                    if (!ca_tot.HasValue)
                    {
                        throw new ArgumentNullException("SQL Query returned invalid NULL value!");
                    }

                    _Ret.Count_Attribute          = ca_tot;
                    _Ret.Count_Attribute_Relative = ((decimal)ca_tot) / ((decimal)_Ret.Count_Rows);

                    _Ret.Count_Empty          = _Ret.Count_Rows - _Ret.Count_Attribute;
                    _Ret.Count_Empty_Relative = ((decimal)_Ret.Count_Empty) / ((decimal)_Ret.Count_Rows);
                }
                else
                {
                    _Ret.Count_Attribute          = _Ret.Count_Rows;
                    _Ret.Count_Attribute_Relative = (decimal)1.0;
                }
            }
            public static void Get_Count_Distinct(AErgAttribut _Ret)
            {
                LogHelper.LogApp($"{MethodBase.GetCurrentMethod().Name}");

                string sql_cmd_str = $@"
SELECT COUNT_BIG(*) [C] FROM (
SELECT DISTINCT T.[{_Ret.AttributeName}] FROM { _Ret.Relation} T) V;
";

                SqlDataReader _DR = DBManager.ExecuteRead(sql_cmd_str);

                _DR.Read();

                long?cd_tot = _DR.IsDBNull(0) ? (long?)null : _DR.GetInt64(0);

                _DR.Close();

                if (!cd_tot.HasValue)
                {
                    throw new ArgumentNullException("SQL Query returned invalid NULL value!");
                }

                _Ret.Count_Distinct          = cd_tot.Value;
                _Ret.Count_Distinct_Relative = ((decimal)cd_tot.Value) / ((decimal)_Ret.Count_Rows.Value);
            }
Exemple #7
0
        public static AErgAttribut Analysieren(string relation, string attribut, int ordinal)
        {
            AErgAttribut ret = new AErgAttribut();

            ret.Datenbank   = DPAnalyse.DBName;
            ret.AusgabePfad = $"{relation}";
            ret.Titel       = $"Attribut {ordinal} - [{attribut}]";

            Anzahl(ret, relation, attribut);

            if (ret.Anzahl > 0)
            {
                if (AttributHasContent(relation, attribut))
                {
                    Anly_Kardinalität(ret, relation, attribut);
                    Anly_Werteverteilung(ret, relation, attribut);
                    Anly_Datenmuster(ret, relation, attribut);
                }
                else
                {
                    FehlendeWerte(ret, relation, attribut);
                    FehlendeWerte_Anteilsm(ret, relation, attribut);
                }
            }

            return(ret);
        }
Exemple #8
0
        private static void TrimTrailBetroffene(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "TrimTrailBetroffene" + "()..." + "                               ");

            string sql_cmd_str = $@"SELECT
    SUM(V.LTRIM) AS [LTRIM_TOT]
    ,SUM(V.RTRIM) AS [RTRIM_TOT]
    ,CAST(SUM(V.LTRIM) AS DECIMAL) / CAST((SELECT COUNT_BIG(*) FROM {relation} T) AS DECIMAL) AS [LTRIM]
    ,CAST(SUM(V.RTRIM) AS DECIMAL) / CAST((SELECT COUNT_BIG(*) FROM {relation} T) AS DECIMAL) AS [RTRIM]
FROM
(SELECT
    CAST(CASE WHEN T.[{attribut}] = LTRIM(T.[{attribut}]) THEN 0 ELSE 1 END AS BIGINT) AS [LTRIM]
    ,CAST(CASE WHEN T.[{attribut}] = RTRIM(T.[{attribut}]) THEN 0 ELSE 1 END AS BIGINT) AS [RTRIM]
FROM {relation} T) V;";

            SqlDataReader dr = DBManager.ExecuteRead(sql_cmd_str);

            dr.Read();

            ret.TrimBetroffene  = dr.GetInt64(0);
            ret.TrailBetroffene = dr.GetInt64(1);

            ret.TrimBetroffene_Anteilsm  = dr.GetDecimal(2);
            ret.TrailBetroffene_Anteilsm = dr.GetDecimal(3);

            dr.Close();
        }
Exemple #9
0
        private static void SucheDomäne(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "SucheDomäne" + "()..." + "                               ");

            int domänenLimit = 25;

            string sql_cmd_str = $@"IF (SELECT TOP 1 COUNT_BIG(*) FROM (SELECT DISTINCT T.[{attribut}] FROM {relation} T) V) <= {domänenLimit}
    SELECT DISTINCT CAST(T.[{attribut}] AS NVARCHAR) FROM {relation} T ORDER BY CAST(T.[{attribut}] AS NVARCHAR) ASC;
ELSE
    SELECT NULL;";

            List <string> _domäne = new List <string>();
            SqlDataReader dr      = DBManager.ExecuteRead(sql_cmd_str);

            string _tmp = null;

            while (dr.Read())
            {
                _tmp = dr.IsDBNull(0) ? null : dr.GetString(0);
                if (_tmp == null)
                {
                    ret.Domäne = null;
                    break;
                }
                _domäne.Add(_tmp);
            }

            dr.Close();

            ret.Domäne = _domäne;
        }
            public static void Get_SimpleDomain(AErgAttribut _Ret)
            {
                LogHelper.LogApp($"{MethodBase.GetCurrentMethod().Name}");

                string sql_cmd_str = $@"
SELECT CONVERT(NVARCHAR,K.A) FROM ( SELECT DISTINCT T.[{_Ret.AttributeName}] AS [A] FROM {_Ret.Relation} T ) K ORDER BY K.A;
";

                List <string> sd = new List <string>();

                SqlDataReader _DR = DBManager.ExecuteRead(sql_cmd_str);

                while (_DR.Read())
                {
                    sd.Add(_DR.IsDBNull(0) ? "NULL" : _DR.GetString(0));
                }

                _DR.Close();

                if (sd.Count == 0)
                {
                    throw new ArgumentNullException("SQL Query returned invalid NULL value!");
                }

                _Ret.SimpleDomain = sd;
            }
            /*
             * public string ModeValue { get; set; } = null;
             * public long? ModeValue_Total { get; set; } = null;
             * public decimal? ModeValue_Relative { get; set; } = null;
             */

            public static void Get_ModeValue(AErgAttribut _Ret)
            {
                LogHelper.LogApp($"{MethodBase.GetCurrentMethod().Name}");

                string sql_cmd_str = $@"
SELECT TOP 1 CONVERT(NVARCHAR, T.[{_Ret.AttributeName}]), COUNT_BIG(*) FROM {_Ret.Relation} T GROUP BY T.[{_Ret.AttributeName}];
";

                SqlDataReader _DR = DBManager.ExecuteRead(sql_cmd_str);

                _DR.Read();

                string mv     = _DR.IsDBNull(0) ? "NULL" : _DR.GetString(0);
                long?  mv_tot = _DR.IsDBNull(1) ? (long?)null : _DR.GetInt64(1);

                _DR.Close();

                if (!mv_tot.HasValue)
                {
                    throw new ArgumentNullException("SQL Query returned invalid NULL value!");
                }

                _Ret.ModeValue          = mv;
                _Ret.ModeValue_Total    = mv_tot;
                _Ret.ModeValue_Relative = ((decimal)(mv_tot.Value)) / ((decimal)(_Ret.Count_Rows.Value));
            }
            public static void Get_Text_Order(AErgAttribut _Ret)
            {
                LogHelper.LogApp($"{MethodBase.GetCurrentMethod().Name}");

                string sql_cmd_str = $@"
SELECT TOP 1
	CONVERT(NVARCHAR,FIRST_VALUE(K.C) OVER (ORDER BY K.C ASC) )
,	CONVERT(NVARCHAR,FIRST_VALUE(K.C) OVER (ORDER BY K.C DESC))
FROM (
	SELECT 
		CAST(T.[{_Ret.AttributeName}] AS {_Ret.Datatype_Documented}) [C]
	FROM {_Ret.Relation} T
) K;
";

                SqlDataReader _DR = DBManager.ExecuteRead(sql_cmd_str);

                _DR.Read();

                string t_a = _DR.IsDBNull(0) ? null : _DR.GetString(0);
                string t_d = _DR.IsDBNull(1) ? null : _DR.GetString(1);

                _DR.Close();

                if (t_a == null && t_d == null)
                {
                    throw new ArgumentNullException("SQL Query returned invalid NULL value!");
                }

                _Ret.Text_First = t_a;
                _Ret.Text_Last  = t_d;
            }
            public static void Get_Benford(AErgAttribut _Ret)
            {
                LogHelper.LogApp($"{MethodBase.GetCurrentMethod().Name}");

                Dictionary <string, long> ben = new Dictionary <string, long>();

                string sql_cmd_str = $@"
SELECT V.LEADCHAR, COUNT_BIG(*) FROM
(SELECT LEFT(CONVERT(NVARCHAR,T.[{_Ret.AttributeName}]), 1) AS [LEADCHAR] FROM {_Ret.Relation} T) V
GROUP BY V.LEADCHAR ORDER BY V.LEADCHAR ASC;
";

                SqlDataReader _DR = DBManager.ExecuteRead(sql_cmd_str);

                while (_DR.Read())
                {
                    ben.Add(_DR.IsDBNull(0) ? "NULL" : _DR.GetString(0), _DR.IsDBNull(1) ? -1 : _DR.GetInt64(1));
                }

                _DR.Close();

                if (ben.Values.Contains(-1))
                {
                    throw new ArgumentNullException("SQL Query returned invalid NULL value!");
                }

                _Ret.Benford = ben;
            }
Exemple #14
0
        private static void Median(AErgAttribut ret, string relation, string attribut, string datatype)
        {
            Console.Write("\r" + "Median" + "()..." + "                               ");

            string        sql_cmd_str = $@"DECLARE @c BIGINT = (SELECT COUNT(T.[{attribut}]) FROM {relation} T);
SELECT CAST(AVG(1.0 * val) AS DECIMAL) AS [MEDIAN]
FROM (
    SELECT CAST(T.[{attribut}] AS {datatype}) val FROM {relation} T
     ORDER BY val
     OFFSET (@c - 1) / 2 ROWS
     FETCH NEXT 1 + (1 - @c % 2) ROWS ONLY
) AS x;";
            SqlDataReader dr          = DBManager.ExecuteRead(sql_cmd_str);

            dr.Read();

            if (dr.IsDBNull(0))
            {
                ret.Median = null;
            }
            else
            {
                ret.Median = dr.GetDecimal(0);
            }

            dr.Close();
        }
Exemple #15
0
        private static void Anly_Datenmuster(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "Anly_Datenmuster" + "()..." + "                               ");

            Datentyp_PrimitivUndKonversion(ret, relation, attribut);

            SucheDomäne(ret, relation, attribut);
        }
Exemple #16
0
        private static void Datentyp_PrimitivUndKonversion(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "Datentyp_PrimitivUndKonversion" + "()..." + "                               ");

            string        sql_cmd_str = $@"SELECT CAST(DATA_TYPE AS NVARCHAR) FROM INFORMATION_SCHEMA.COLUMNS 
WHERE '['+TABLE_SCHEMA+'].['+TABLE_NAME+']' = '{relation}' AND COLUMN_NAME = '{attribut}'";
            SqlDataReader dr          = DBManager.ExecuteRead(sql_cmd_str);

            dr.Read();

            string datatype_actual = dr.GetString(0);

            dr.Close();

            ret.DokumentierterDatentyp = datatype_actual;

            if (PrimitiveKonversion.Keys.Contains(datatype_actual))
            {
                string konversion = PrimitiveKonversion[datatype_actual];
                if (konversion == null)
                {
                    ret.PrimitiverDatentyp = "TEXT";

                    PrimitiverDatentypEigenschaften(ret, relation, attribut);

                    if (ret.PrimitiverDatentypEigenschaften != null)
                    {
                        if (ret.PrimitiverDatentypEigenschaften.Keys.Contains("NUM"))
                        {
                            if (ret.PrimitiverDatentypEigenschaften["NUM"] > 0)
                            {
                                DatentypVonText(ret, relation, attribut, datatype_actual);
                            }
                        }
                    }

                    TrimTrailBetroffene(ret, relation, attribut);
                }
                else
                {
                    ret.PrimitiverDatentyp = konversion;
                    ret.PrimitiverDatentypEigenschaften_Anteilsm = null;

                    ret.DatentypenKonversion          = null;
                    ret.DatentypenKonversion_Anteilsm = null;

                    //TODO IF NUM LÄNGE & PRÄZISIONSTEST
                }
            }
            else
            {
                ret.PrimitiverDatentyp = "OTHER";
                ret.PrimitiverDatentypEigenschaften_Anteilsm = null;

                ret.DatentypenKonversion          = null;
                ret.DatentypenKonversion_Anteilsm = null;
            }
        }
Exemple #17
0
        private static void Anly_Kardinalität(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "Anly_Kardinalität" + "()..." + "                               ");

            FehlendeWerte(ret, relation, attribut);
            FehlendeWerte_Anteilsm(ret, relation, attribut);
            Einzigartigkeit(ret, relation, attribut);
            Einzigartigkeit_Aneilsm(ret, relation, attribut);
            Zeichenlänge(ret, relation, attribut);
        }
 public static void Get_Histogramm(AErgAttribut _Ret)
 {
     if (_Ret.Count_Distinct <= DPAttribut.DOMAIN_SIMPLE_BORDER)
     {
         Get_Histogramm_Select(_Ret);
     }
     else
     {
         Get_Histogramm_Calculated(_Ret);
     }
 }
Exemple #19
0
        private static void Anzahl(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "Anzahl" + "()..." + "                               ");

            string        sql_cmd_str = $@"SELECT COUNT_BIG(*) FROM {relation} T";
            SqlDataReader dr          = DBManager.ExecuteRead(sql_cmd_str);

            dr.Read();
            ret.Anzahl = dr.GetInt64(0);

            dr.Close();
        }
Exemple #20
0
        private static void FehlendeWerte(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "FehlendeWerte" + "()..." + "                               ");

            string        sql_cmd_str = $@"SELECT COUNT_BIG(*) - COUNT_BIG(T.[{attribut}]) FROM {relation} T";
            SqlDataReader dr          = DBManager.ExecuteRead(sql_cmd_str);

            dr.Read();
            ret.FehlendeWerte = dr.GetInt64(0);

            dr.Close();
        }
Exemple #21
0
        private static void Einzigartigkeit(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "Einzigartigkeit" + "()..." + "                               ");

            string        sql_cmd_str = $@"SELECT COUNT_BIG(*) FROM (SELECT DISTINCT T.[{attribut}] FROM {relation} T) V";
            SqlDataReader dr          = DBManager.ExecuteRead(sql_cmd_str);

            dr.Read();
            ret.Einzigartigkeit = dr.GetInt64(0);

            dr.Close();
        }
Exemple #22
0
        private static void Modalwert_Tot(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "Modalwert_Tot" + "()..." + "                               ");

            string        sql_cmd_str = $@"SELECT TOP 1 COUNT_BIG(*) FROM {relation} T GROUP BY T.[{attribut}] ORDER BY COUNT(*) DESC;";
            SqlDataReader dr          = DBManager.ExecuteRead(sql_cmd_str);

            dr.Read();

            ret.Modalwert_Tot = dr.GetInt64(0);

            dr.Close();
        }
Exemple #23
0
        private static void Modalwert(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "Modalwert" + "()..." + "                               ");

            string        sql_cmd_str = $@"SELECT TOP 1 CAST(T.[{attribut}] AS NVARCHAR) FROM {relation} T GROUP BY T.[{attribut}] ORDER BY COUNT_BIG(*) DESC;";
            SqlDataReader dr          = DBManager.ExecuteRead(sql_cmd_str);

            dr.Read();

            ret.Modalwert = dr.IsDBNull(0) ? null : dr.GetString(0);

            dr.Close();
        }
Exemple #24
0
        private static void FehlendeWerte_Anteilsm(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "FehlendeWerte_Anteilsm" + "()..." + "                               ");

            string        sql_cmd_str = $@"SELECT
       CAST((SELECT COUNT_BIG(*) - COUNT_BIG(T.[{attribut}]) FROM {relation} T) AS DECIMAL) /
       CAST((SELECT COUNT_BIG(*) FROM {relation} T) AS DECIMAL)";
            SqlDataReader dr          = DBManager.ExecuteRead(sql_cmd_str);

            dr.Read();
            ret.FehlendeWerte_Anteilsm = dr.GetDecimal(0);

            dr.Close();
        }
Exemple #25
0
        private static void Einzigartigkeit_Aneilsm(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "Einzigartigkeit_Aneilsm" + "()..." + "                               ");

            string        sql_cmd_str = $@"SELECT
       CAST((SELECT COUNT_BIG(*) FROM (SELECT DISTINCT T.[{attribut}] FROM {relation} T) V) AS DECIMAL) /
       CAST((SELECT COUNT_BIG(*) FROM {relation} T) AS DECIMAL)";
            SqlDataReader dr          = DBManager.ExecuteRead(sql_cmd_str);

            dr.Read();
            ret.Einzigartigkeit_Anteilsm = dr.GetDecimal(0);

            dr.Close();
        }
Exemple #26
0
        private static void Standardwert(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "Standardwert" + "()..." + "                               ");

            string        sql_cmd_str = $@"SELECT CAST(COLUMN_DEFAULT AS NVARCHAR) FROM INFORMATION_SCHEMA.COLUMNS 
WHERE '['+TABLE_SCHEMA+'].['+TABLE_NAME + ']' = '{relation}' AND COLUMN_NAME = '{attribut}';";
            SqlDataReader dr          = DBManager.ExecuteRead(sql_cmd_str);

            dr.Read();

            ret.Standardwert = dr.IsDBNull(0) ? null : dr.GetString(0);

            dr.Close();
        }
            public static void Get_PrimitiveDatatypeProperties(AErgAttribut _Ret)
            {
                LogHelper.LogApp($"{MethodBase.GetCurrentMethod().Name}");

                string sql_cmd_str = $@"
DECLARE @true BIGINT = 1;
DECLARE @false BIGINT = 0;
SELECT
	SUM(V.NUM) AS [NUM_TOT]
,	SUM(V.APH) AS [APH_TOT]
,	SUM(V.OTH) AS [OTH_TOT]
FROM
(SELECT
    CASE WHEN T.[{_Ret.AttributeName}] LIKE '%[0-9]%' THEN @true ELSE @false END [NUM]
    ,CASE WHEN T.[{_Ret.AttributeName}] LIKE '%[a-zA-Z]%' THEN @true ELSE @false END [APH]
    ,CASE WHEN T.[{_Ret.AttributeName}] LIKE '%[^0-9a-zA-Z]%' THEN @true ELSE @false END [OTH]
FROM {_Ret.Relation} T) V;
";

                SqlDataReader _DR = DBManager.ExecuteRead(sql_cmd_str);

                _DR.Read();

                long?prp_aph = _DR.IsDBNull(0) ? (long?)null : _DR.GetInt64(0);
                long?prp_num = _DR.IsDBNull(1) ? (long?)null : _DR.GetInt64(1);
                long?prp_oth = _DR.IsDBNull(2) ? (long?)null : _DR.GetInt64(2);

                _DR.Close();

                if (!prp_aph.HasValue || !prp_num.HasValue || !prp_oth.HasValue)
                {
                    throw new ArgumentNullException("SQL Query returned invalid NULL value!");
                }

                Dictionary <string, long> prp_tot = new Dictionary <string, long>();

                prp_tot.Add("NUM", prp_aph.Value);
                prp_tot.Add("APH", prp_num.Value);
                prp_tot.Add("OTH", prp_oth.Value);

                Dictionary <string, decimal> prp_rel = new Dictionary <string, decimal>();

                prp_rel.Add("NUM", ((decimal)prp_tot["NUM"]) / ((decimal)_Ret.Count_Attribute.Value));
                prp_rel.Add("APH", ((decimal)prp_tot["APH"]) / ((decimal)_Ret.Count_Attribute.Value));
                prp_rel.Add("OTH", ((decimal)prp_tot["OTH"]) / ((decimal)_Ret.Count_Attribute.Value));

                _Ret.Datatype_Primitive_Properties          = prp_tot;
                _Ret.Datatype_Primitive_Properties_Relative = prp_rel;
            }
Exemple #28
0
        private static void Zeichenlänge(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "Zeichenlänge" + "()..." + "                               ");

            string        sql_cmd_str = $@"SELECT CAST(MIN(V.STRLEN) AS BIGINT) AS [MIN] ,CAST(MAX(V.STRLEN) AS BIGINT) AS [MAX] ,CAST(AVG(V.STRLEN) AS DECIMAL) AS [AVG]
FROM (SELECT LEN(CAST(T.[{attribut}] AS VARCHAR)) AS STRLEN FROM {relation} T) V";
            SqlDataReader dr          = DBManager.ExecuteRead(sql_cmd_str);

            dr.Read();
            ret.Zeichenlänge_Min = dr.IsDBNull(0) ? 0 : dr.GetInt64(0);
            ret.Zeichenlänge_Max = dr.IsDBNull(1) ? 0 : dr.GetInt64(1);
            ret.Zeichenlänge_Avg = dr.IsDBNull(2) ? 0 : dr.GetDecimal(2);

            dr.Close();
        }
Exemple #29
0
        private static void Stat_Text(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "Stat_Text" + "()..." + "                               ");

            string        sql_cmd_str = $@"SELECT
    CAST((SELECT TOP 1 T.[{attribut}] FROM {relation} T ORDER BY T.[{attribut}] ASC) AS NVARCHAR) AS [FIRST]
    ,CAST((SELECT TOP 1 T.[{attribut}] FROM {relation} T ORDER BY T.[{attribut}] DESC) AS NVARCHAR) AS [LAST];";
            SqlDataReader dr          = DBManager.ExecuteRead(sql_cmd_str);

            dr.Read();
            ret.Text_Start = dr.IsDBNull(0) ? null : dr.GetString(0);
            ret.Text_Ende  = dr.IsDBNull(1) ? null : dr.GetString(1);

            dr.Close();
        }
Exemple #30
0
        private static void Modalwert_Anteilsm(AErgAttribut ret, string relation, string attribut)
        {
            Console.Write("\r" + "Modalwert_Anteilsm" + "()..." + "                               ");

            string        sql_cmd_str = $@"SELECT
       (CAST((SELECT TOP 1 COUNT_BIG(*) FROM {relation} T GROUP BY T.[{attribut}] ORDER BY COUNT_BIG(*) DESC) AS DECIMAL)) /
       (CAST((SELECT COUNT_BIG(T.[{attribut}]) FROM {relation} T) AS DECIMAL));";
            SqlDataReader dr          = DBManager.ExecuteRead(sql_cmd_str);

            dr.Read();

            ret.Modalwert_Anteilsm = dr.GetDecimal(0);

            dr.Close();
        }