2012-08-15 126 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