C # sql вставить количество одной таблицы в другую - PullRequest
0 голосов
/ 22 сентября 2019

Здравствуйте, поскольку я вставляю счетчик данных одной таблицы в другую таблицу, я не знаю, как это сделать, поскольку я новичок в SQL и c # .net. Ниже мой код прикреплен.данные вставляются, когда я пишу этот запрос:

Insert into compareresult(title,repeat) select  title, COUNT(*) as repeat from glassdoor  GROUP BY title HAVING COUNT(*) > 1 union select  title, COUNT(*) as repeat from mitula GROUP BY title HAVING COUNT(*) > 1 union select   title, COUNT(*) as repeat  from trovoit GROUP BY title HAVING   COUNT(*) > 1 union   select title, COUNT(*) as repeat from indeed GROUP BY title HAVING   COUNT(*)  > 1 intersect select   title, COUNT(*)  as repeat from alldata_table GROUP BY title HAVING COUNT(*) > 1

, но это не работает, когда я использую в веб-формах .net.код будет предпочтительным.

void getIntersectedData()
    {

        try
        {
            con.Open();
            string query = @" select  title, COUNT(*) as repeat from glassdoor  
            GROUP BY title HAVING COUNT(*) > 1 union select  title, COUNT(*) as repeat from mitula GROUP BY title HAVING COUNT(*) > 1 
            union select   title, COUNT(*) as repeat  from trovoit GROUP BY title HAVING   COUNT(*) > 1 union   
            select title, COUNT(*) as repeat from indeed GROUP BY title HAVING   COUNT(*)  > 1 intersect 
            select   title, COUNT(*)  as repeat from alldata_table GROUP BY title HAVING COUNT(*) > 1";
            SqlCommand cmd = new SqlCommand(query, con);
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                insert(dr);   
            }
            con.Close();

        }
        catch (Exception e)
        {

        }

    }
    private void insert(SqlDataReader dr)
    {
        con.Open();
        string insertquery = @"Insert into compareresult(title,count) values('" + dr[0].ToString() + "','" + dr[1].ToString() + "')";
        SqlCommand cmds = new SqlCommand(insertquery, con);
        cmds.ExecuteNonQuery();
        con.Close();
    }

1 Ответ

0 голосов
/ 22 сентября 2019

Мое первое предположение, хотя мне и нужно больше подробностей:

Если количество (*) для каждой таблицы одинаковое, объединение будет игнорировать дубликаты.В этом случае я бы использовал union all, чтобы убедиться, что он одинаков.Во-вторых, вы можете сохранить счет со ссылкой на таблицу, из которой вы берете счет.Может быть, другой столбец для указания таблицы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...