2012-08-15 104 views
0

這裏是我的代碼:訪問SQL查詢日期

SELECT DataBaseUser.Agents, Abs(Sum([NoPPI1])) AS [NoPPI-1], Abs(Sum([NoPPI2])) AS [NoPPI-2], Abs(Sum([NoPPI3])) AS [NoPPI-3], Abs(Sum([NoPPI4])) AS [NoPPI-4], Abs(Sum([NoPPI5])) AS [NoPPI-5], Abs(Sum([NoPPI6])) AS [NoPPI-6], Abs(Sum([NoPPI1])+Sum([NoPPI2])+Sum([NoPPI3])+Sum([NoPPI4])+Sum([NoPPI5])+Sum([NoPPI6])) AS TotalNoPPI 
FROM DataBaseUser INNER JOIN MainData ON DataBaseUser.ID = MainData.AgentDropDown 
GROUP BY DataBaseUser.Agents; 

試圖讓這個查詢通過對NoPPI6工作,基本上查詢總結總NoPPI1每個銷售代理。我遇到的問題是我需要在NoPPI1上有某種過濾器用於本月的發言,然後是NoPPI2用於2個月前的日期過濾器。

這可能嗎?

感謝


更新

目前的結果是這樣的:

Agents | NoPPI1 | NoPPI2 | NoPPI3 | NoPPI4 | NoPPI5 | NoPPI6 | 
-------------------------------------------------------------- 
Ash | 34  | 32  | 17  | 12  | 4  | 1  | 
Kate | 45  | 23  | 15  | 9  | 2  | 0  | 

等.. |

,將控制日期字段是NoPPIDate1等。

所以我想實現的是:

NoPPI1需要進行彙總,和ABS,然後按日期過濾,然後相同的另一個,但不同的日期。

在此先感謝

+1

您可以張貼在一般情況下,(相關的)數據庫的結構,以及一個簡短的夏日什麼信息你想要提取。如果我們不需要對您的查詢進行逆向工程,那麼對我們來說幫助就更容易了 – yoshi 2012-08-15 08:55:46

回答

0

首先要做的是用UNION查詢規範化表。這會給你更多的控制:

SELECT Agent, "NoPPI1" As Description, NoPPI1 As NoPPI, NoPPI1Date As NoPPIDate 
FROM Table 
UNION 
SELECT Agent, "NoPPI2" As Description, NoPPI2 As NoPPI, NoPPI2Date As NoPPIDate 
FROM Table 
<...> 

然後你可以選擇更容易:

SELECT Agent, Sum(NoPPI) FROM UnionQ 
WHERE NoPPIDate=#2012/12/31# 
GROUP BY Agent