2016-09-27 63 views
2

美好的一天,訪問SQL計算

我正在用Access SQL計算大腦凍結。 我有一個表4列數據如下:

enter image description here

我所試圖實現的是基於兩個頁面名稱的百分比計算,這些頁面的名稱「應用程序 - 打印/保存」和'App Process - 顯示'。因此,計算將是:

「應用程序 - 打印/保存」 /「應用程序 - 顯示的」

但是,這也將是每一個「年」和「WEEKOFYEAR」。

什麼是最乾淨的方式來實現這一目標?

其他結果信息: 我想要做的就是再餵了這一點到表中,最有可能的數據透視表,看起來像這樣.. enter image description here

所以基本上創建計算的附加列/結果。 在這個表格中會有其他頁面具有相同的設置,但我現在已經過濾了一個只有一個組作爲示例。

Regards

+2

編輯你的問題,包括要達到的結果。 –

+0

你想要的輸出是什麼? –

+0

感謝您的快速響應,編輯我原來的問題,包括預期的結果。 –

回答

0

我試着用SQL。你也可以嘗試任何其他。

使用透視:

     select YEAR ,page,[29],[30] 
        from #temp pivot 
        (
         max([unique pageview]) 
          FOR weekofyear IN ([29],[30]) 
        )as p 

        order by 
        case when page='App Process - shown' then 1 
        when page='App Process - step 1' then 2 
        when page='App Process - step 2' then 3 
        when page='App Process - Print/Save' then 4 
        end 

對於下面的查詢總計算使用:

   select YEAR ,page,[29],[30] from 
      #temp pivot 
      (
      max([unique pageview]) 
        FOR weekofyear IN ([29],[30]) 
      )as p 

      union all 

      select YEAR ,page,[29],[30] 
      from ( select a.year, a.weekofyear,'Total Print/Save calculator Conversion' as 'page', 
        CONVERT(DECIMAL(10, 3), a.[unique pageview])/ 
        CONVERT(DECIMAL(10, 3), b.[unique pageview]) as 'Print/Save calculator Conversion' 
        from 
        (  
        select year , weekofyear , page , [unique pageview]  
        FROM #temp 
        where page in ('App Process - Print/Save') 
        )a inner join (  
         select year , '' as 'Total Print/Save calculator Conversion',weekofyear , page , [unique pageview]  
        FROM #temp 
        where page in ('App Process - shown') 
        )b on a.year=b.year and a.weekofyear=b.weekofyear 
        )c 
      pivot 
      (
      max([Print/Save calculator Conversion]) 
        FOR weekofyear IN ([29],[30]) 
      )as p 

讓我們知道如果u對此有任何疑慮。

+0

謝謝@ mr-bhosale我一直在休假,所以我會試一試並回復你。 –

1

用於創建交叉表查詢嚮導 - 與此表達對列名:

[Year] & "-" & [WeekNumber] 
+0

謝謝@gustav我一直在休假,所以我會嘗試一下。 –