【问题标题】:Adding one more column externally in query在查询中在外部添加一列
【发布时间】:2014-01-10 19:03:42
【问题描述】:

我有以下查询:

WITH ctablee(mon, [<=15], [<=18], [<=20], [>20])
 AS 
(SELECT     *
 FROM         (SELECT     CONVERT(CHAR(4), [Data OUT (No Val#Vuoto)], 100) mon, [Gruppi Min (GG Flusso/Decorrenza-->Out)], 
                          Count([Gruppi Min (GG Flusso/Decorrenza-->Out)]) cnt
               FROM          dbpratiche
               WHERE      compagnia = 'GENERTEL'
               GROUP BY [Gruppi Min (GG Flusso/Decorrenza-->Out)], CONVERT(CHAR(4), [Data OUT (No Val#Vuoto)], 100)
               ) T

                   PIVOT
                    (
                    sum(cnt)
                     FOR [Gruppi Min (GG Flusso/Decorrenza-->Out)] IN ([<=15], [<=18], [<=20], [>20])) p
                     )
    SELECT     mon, isnull([<=15], 0) [<=15], isnull([<=18], 0) [<=18], isnull([<=20], 0) [<=20], isnull([>20], 0) [>20], isnull([<=15] + [<=18] + [<=20] + [>20], 0) Total   

    FROM         ctablee

这会导致:

我想通过以下查询在其中再添加一列:

select 
AVG([Min (GG Flusso/Decorrenza-->Out) Cal#] ) avrage
from dbo.dbPratiche
where Compagnia='GENERTEL'
and Stato='OUT ATTIVATA'
group by  convert(char(4),[Data OUT (No Val#Vuoto)],100)

这导致列:

我只是想让这个列(平均)在第一个结果中的 Total 之后。

如何绑定这两个查询以获得合并结果。

注意:两个查询生成的行是相等的。

【问题讨论】:

    标签: sql database sql-server-2008-r2


    【解决方案1】:

    我通过在内部将表连接为:

    WITH ctablee(mon, [<=15], [<=18], [<=20], [>20])
     AS 
    (SELECT     *
     FROM         (SELECT     CONVERT(CHAR(4), [Data OUT (No Val#Vuoto)], 100) mon, [Gruppi Min (GG Flusso/Decorrenza-->Out)], 
                              Count([Gruppi Min (GG Flusso/Decorrenza-->Out)]) cnt
                   FROM          dbpratiche
                   WHERE      compagnia = 'GENERTEL'
                   GROUP BY [Gruppi Min (GG Flusso/Decorrenza-->Out)], CONVERT(CHAR(4), [Data OUT (No Val#Vuoto)], 100)
                   ) T
    
                       PIVOT
                        (
                        sum(cnt)
                         FOR [Gruppi Min (GG Flusso/Decorrenza-->Out)] IN ([<=15], [<=18], [<=20], [>20])) p
                         )
    
    
        SELECT    TB.mon, isnull(TB.[<=15], 0) [<=15], isnull(TB.[<=18], 0) [<=18], isnull(TB.[<=20], 0) [<=20], isnull(TB.[>20], 0) [>20], isnull(TB.[<=15] + TB.[<=18] + TB.[<=20] + TB.[>20], 0) Total   
        ,
    
       (
        select 
    AVG(d.[Min (GG Flusso/Decorrenza-->Out) Cal#] ) avrage
    from dbo.dbPratiche d,ctablee v
    where 
    convert(char(4),d.[Data OUT (No Val#Vuoto)],100)=TB.mon  and
    d.Compagnia='GENERTEL'
    and d.Stato='OUT ATTIVATA'
    group by  convert(char(4),d.[Data OUT (No Val#Vuoto)],100)) as 'TK'
    FROM         ctablee TB
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 2018-08-31
      • 2012-11-09
      • 2022-01-26
      相关资源
      最近更新 更多