Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/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 如何使以下仅显示实例>1_Sql_Sql Server_Sql Server 2008_Tsql - Fatal编程技术网

Sql 如何使以下仅显示实例>1

Sql 如何使以下仅显示实例>1,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我在一个生成临时表的存储过程中有一个查询 我需要它只显示超过1行的应用程序,并且我需要为每个重复条目显示一行 这就是我到目前为止所拥有的,我如何才能让它发挥作用 Select t2.ApplicationName, t3.MainframeDev, t3.MainframeTest, t3.MMX, t3.HMG, t3.WMI, t3.TJXE, 'Changing' as UsedAs, t3.ProjectName,

我在一个生成临时表的存储过程中有一个查询

我需要它只显示超过1行的应用程序,并且我需要为每个重复条目显示一行

这就是我到目前为止所拥有的,我如何才能让它发挥作用

    Select  t2.ApplicationName, t3.MainframeDev, t3.MainframeTest, t3.MMX,       
            t3.HMG, t3.WMI, t3.TJXE, 'Changing' as UsedAs, t3.ProjectName, 
            t4.FirstName+'  '+LastName as ProjectLead,t3.Status,  
            CONVERT(varchar(20),t3.ImplementationDate,126) as ImplementationDate
    from    ImpactedApplications t1 
    inner join Applications t2 on t2.AppID = t1.AppID 
    inner join Projects t3 on t3.ProjectID = t1.ProjectID
    inner join Employees t4 on t3.ProjectLead = t4.EmpId
    where t2.ApplicationName <> 'NA' 


    UNION

    Select  t2.ApplicationName, t3.MainframeDev, t3.MainframeTest, t3.MMX, 
            t3.HMG, t3.WMI, t3.TJXE, 'Supporting' as UsedAs, t3.ProjectName, 
            t4.FirstName+' '+LastName as ProjectLead,t3.Status, 
            CONVERT(varchar(20),t3.ImplementationDate,126) as ImplementationDate
    from SupportingApplications t1 
    inner join Applications t2 on t2.AppID = t1.AppID
    inner join Projects t3 on t3.ProjectID = t1.ProjectID
    inner join Employees t4 on t3.ProjectLead = t4.EmpId
    where t2.ApplicationName <> 'NA'
    Order By ApplicationName, MainframeDev, UsedAs ASC 

如果您想要获得所有重复的行或所有具有多个条目的应用程序,那么我认为您只需要GROUPBY子句和Having子句来解决这个问题

将查询的输出放在临时表(比如应用程序)中,然后


因为我没有你的基本表,这有点像是在黑暗中拍摄的:

;WITH
    cte1 AS (
        Select  t2.ApplicationName, t3.MainframeDev, t3.MainframeTest, t3.MMX,       
                t3.HMG, t3.WMI, t3.TJXE, 'Changing' as UsedAs, t3.ProjectName, 
                t4.FirstName+'  '+LastName as ProjectLead,t3.Status,  
                CONVERT(varchar(20),t3.ImplementationDate,126) as ImplementationDate
        from    ImpactedApplications t1 
        inner join Applications t2 on t2.AppID = t1.AppID 
        inner join Projects t3 on t3.ProjectID = t1.ProjectID
        inner join Employees t4 on t3.ProjectLead = t4.EmpId
        where t2.ApplicationName <> 'NA' 

        UNION

        Select  t2.ApplicationName, t3.MainframeDev, t3.MainframeTest, t3.MMX, 
                t3.HMG, t3.WMI, t3.TJXE, 'Supporting' as UsedAs, t3.ProjectName, 
                t4.FirstName+' '+LastName as ProjectLead,t3.Status, 
                CONVERT(varchar(20),t3.ImplementationDate,126) as ImplementationDate
        from SupportingApplications t1 
        inner join Applications t2 on t2.AppID = t1.AppID
        inner join Projects t3 on t3.ProjectID = t1.ProjectID
        inner join Employees t4 on t3.ProjectLead = t4.EmpId
        where t2.ApplicationName <> 'NA'
    ), cte2 AS (
        SELECT      *, AppCount = COUNT(ApplicationName) OVER (PARTITION BY ApplicationName)
        FROM        cte1
    )

SELECT  *
FROM    cte2
WHERE   AppAcount > 1

@havenodisplayname完成。
Create table #application(appid int, aapvname varchar(50))
insert into #application values (1,'100'),(1,'101'),(2,'200'),(2,'201'),(3,'300'),(4,'400')

Select * 
From #application
WHERE appid IN (
                 Select appid 
                 From #application
                 GROUP BY appid
                 Having COUNT(*) > 1)
;WITH
    cte1 AS (
        Select  t2.ApplicationName, t3.MainframeDev, t3.MainframeTest, t3.MMX,       
                t3.HMG, t3.WMI, t3.TJXE, 'Changing' as UsedAs, t3.ProjectName, 
                t4.FirstName+'  '+LastName as ProjectLead,t3.Status,  
                CONVERT(varchar(20),t3.ImplementationDate,126) as ImplementationDate
        from    ImpactedApplications t1 
        inner join Applications t2 on t2.AppID = t1.AppID 
        inner join Projects t3 on t3.ProjectID = t1.ProjectID
        inner join Employees t4 on t3.ProjectLead = t4.EmpId
        where t2.ApplicationName <> 'NA' 

        UNION

        Select  t2.ApplicationName, t3.MainframeDev, t3.MainframeTest, t3.MMX, 
                t3.HMG, t3.WMI, t3.TJXE, 'Supporting' as UsedAs, t3.ProjectName, 
                t4.FirstName+' '+LastName as ProjectLead,t3.Status, 
                CONVERT(varchar(20),t3.ImplementationDate,126) as ImplementationDate
        from SupportingApplications t1 
        inner join Applications t2 on t2.AppID = t1.AppID
        inner join Projects t3 on t3.ProjectID = t1.ProjectID
        inner join Employees t4 on t3.ProjectLead = t4.EmpId
        where t2.ApplicationName <> 'NA'
    ), cte2 AS (
        SELECT      *, AppCount = COUNT(ApplicationName) OVER (PARTITION BY ApplicationName)
        FROM        cte1
    )

SELECT  *
FROM    cte2
WHERE   AppAcount > 1