Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何使用SQL Select查询从两个表中获取不同的数据_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 如何使用SQL Select查询从两个表中获取不同的数据

Sql server 如何使用SQL Select查询从两个表中获取不同的数据,sql-server,sql-server-2008,Sql Server,Sql Server 2008,如何使用SQL Select查询从两个表中获取不同的数据。我需要知道有多少用户开始创新,但需要不同的数据。以下是两个表格。表_UserInformation是基本的注册表,登录后他可以添加许多创新,但只注册一个电子邮件id 表2用户信息 Name Email mobile mazhar mazar@gmail.com 720000000 rahul rahul@gmail.com 992000000 raj raj@gmail.

如何使用SQL Select查询从两个表中获取不同的数据。我需要知道有多少用户开始创新,但需要不同的数据。以下是两个表格。表_UserInformation是基本的注册表,登录后他可以添加许多创新,但只注册一个电子邮件id

表2用户信息

Name      Email             mobile
mazhar    mazar@gmail.com   720000000
rahul     rahul@gmail.com   992000000
raj       raj@gmail.com     700000000
表11创新

Email             Data1                Data2
mazar@gmail.com   aim to achive LD     NA
mazar@gmail.com   Search for LD        NA
rahul@gmail.com   mind tech            Techno
我想知道有多少用户开始创新计数和细节,如下面2个输出需要

  • 输出:根据电子邮件需求统计,有多少用户开始创新

    counts
     2
    
  • 输出:有多少用户开始基于电子邮件的创新需要用户的详细信息

     Name      Email             mobile
     mazhar    mazar@gmail.com   720000000
     rahul    rahul@gmail.com   992000000
    

  • 您可以使用distinct count和exists来获取这些查询

    计数:

    select count(distinct Email) from Table_innovation
    
    针对不同的用户

    select * from Table_UserInformation t where exists (select 1 from Table_innovation i where i.email = t.email)
    

    尝试下面的查询,这将为您提供所需的输出,正如您所提到的问题

    DECLARE @Table_UserInformation TABLE(Name  varchar(100),    Email         varchar(100),        mobile varchar(100))
    DECLARE @Table_Innovation TABLE(Email  varchar(100),    DATA1         varchar(100),        DATA2 varchar(100))
    INSERT INTO @Table_UserInformation VALUES
    ('mazhar',    'mazar@gmail.com',   '720000000'),
    ('rahul',    'rahul@gmail.com',   '992000000'),
    ('raj',       'raj@gmail.com',     '700000000')
    INSERT INTO @Table_Innovation VALUES
    ('mazar@gmail.com',   'aim to achive LD',     'NA'),
    ('mazar@gmail.com',   'Search for LD',        'NA'),
    ('rahul@gmail.com',   'mind tech',            'Techno')
    ;WITH SAMPLEDATA
    AS
    (
    SELECT Email,COUNT(EMAIL)COUNTS FROM @Table_Innovation GROUP BY Email
    )
    SELECT T2.Name,T2.Email,T2.mobile,T1.COUNTS FROM SAMPLEDATA T1 JOIN     @Table_UserInformation T2 
    ON T1.Email=T2.Email
    
    输出

    -----------------------------------------
    --Name  Email   mobile  COUNTS
    -----------------------------------------
    mazhar  mazar@gmail.com 720000000   2
    rahul   rahul@gmail.com 992000000   1
    -----------------------------------------
    
    分别查询两个:

    SELECT Email,COUNT(EMAIL)COUNTS FROM @Table_Innovation GROUP BY Email
    
    ;WITH SAMPLEDATA
    AS
    (
    SELECT Email,COUNT(EMAIL)COUNTS FROM @Table_Innovation GROUP BY Email
    )
    SELECT T2.Name,T2.Email,T2.mobile FROM SAMPLEDATA T1 JOIN     @Table_UserInformation T2 
    ON T1.Email=T2.Email
    
    输出

    -----------------------
    Email   COUNTS
    -----------------------
    mazar@gmail.com 2
    rahul@gmail.com 1
    
    ------------------------------------
    Name    Email   mobile
    ------------------------------------
    mazhar  mazar@gmail.com 720000000
    rahul   rahul@gmail.com 992000000
    

    您可以尝试以下方法:

      SELECT  
       a.[Name]
      ,a.[Email]
      ,a.[Mobile]
      ,(select count(b.Email) from Table_Innovation as b where b.Email = a.Email)
        as 'Innovat ion Count'
     FROM Table_UserInformation as a
    
    您的结果应该如下所示:

    格里茨
    K4ckr31z

    请尝试使用以下代码进行所需输出:

        DECLARE @Table_UserInformation TABLE(Name VARCHAR(100),Email VARCHAR(100),mobile VARCHAR(100))
        INSERT INTO @Table_UserInformation VALUES
        ('mazhar','mazar@gmail.com','720000000'),
        ('rahul','rahul@gmail.com','992000000'),
        ('raj','raj@gmail.com','700000000')
    
        DECLARE @Table_Innovation TABLE(Email VARCHAR(100),DATA1 VARCHAR(100),DATA2 VARCHAR(100))
        INSERT INTO @Table_Innovation VALUES
        ('mazar@gmail.com','aim to achive LD','NA'),
        ('mazar@gmail.com','Search for LD','NA'),
        ('rahul@gmail.com','mind tech','Techno')
    
        SELECT 
            COUNT(DISTINCT Email) AS COUNTS 
        FROM 
            @Table_Innovation
    
        SELECT 
            DISTINCT T1.Name,T1.Email,T1.mobile
        FROM 
            @Table_UserInformation T1  INNER JOIN @Table_Innovation T2 ON T1.Email=T2.Email
    

    有人需要帮助吗?我需要两个的innovaiton计数@Gaurav Rajputi已经编辑了我上面的答案,现在您有两个单独的查询和一个查询来获得结果。请理解我的问题@k4ckr31z