如何获取报告中的值!格式不同

时间:2015-07-02 20:10:33

标签: sql vba reporting-services report

美好的一天。我是这个VBA世界的新生儿。请欢迎我。我要求以下面的格式生成报告

-------------------------------------------------------------------
        ANNUAL FISCALE REPORT - EMPLOYEE HUB
-------------------------------------------------------------------

***Year Name    Designation EmpDate       SALARY        TOTAL***

2015    TEST1   MANAGER    24/05/2015   $12,000.00  
        TEST2   VP         12/05/2015   $15,000.00  
        TEST3   VC         01/04/2015   $13,500.00      $40,500.00  

2014    TEST4   MANAGER    25/03/2014   $15,000.00      $15,000.00  

2013    TEST5   MANAGER    03/12/2013   $12,000.00   
        TEST6   VP         23/08/2013   $18,000.00      $20,000.00 

我不知道我们是否可以通过在单个查询中编写它来实现最终结果。我编写了基本查询,它生成包含字段Anno(年份),Data_Movimento(日期),注释描述和代理描述的记录列表。

SELECT CessioneCredito.Importo, CessioneCredito.Anno,
   CessioneCredito.Data_Movimento,
   CessioneCredito.Note_Liq_Cessione_Credito, 
   Agenzie.Denominazione
FROM CessioneCredito
    INNER JOIN Agenzie ON CessioneCredito.ID_Agente=Agenzie.ID_agenzia
WHERE (((CessioneCredito.ID_Agente)=[Reports]![R_StoricoCessCredAg]![ID_Agente]))
ORDER BY CessioneCredito.Data_Movimento DESC;

YEAR列:每个YEAR的最大值日期字段值的第一行显示值仅一次。如果它只有一条记录,则显示相应的年份。

TOTAL列:仅为每组年度记录的最后一行显示SALARY字段的总值。我将使用SUM函数添加这些工资字段以获得总价值。

在显示时,如何仅为每年的第一个和最后一个记录提供它?

SELECT Sum(CessioneCredito.Importo) AS SumOfImporto,
    CessioneCredito.Anno, Max(CessioneCredito.Data_Movimento) AS MaxOfData_Movimento,
    Min(CessioneCredito.Data_Movimento) AS MinOfData_Movimento
FROM CessioneCredito 
GROUP BY CessioneCredito.Anno, CessioneCredito.ID_Agente
HAVING (((CessioneCredito.ID_Agente)=[Reports]![R_StoricoCessCredAg]![ID_Agente]))
ORDER BY CessioneCredito.Anno DESC , Max(CessioneCredito.Data_Movimento) DESC;

此查询从Importo表中查找每个年度Max的{​​{1}},MinData_Movimento值的总和顺序。

是否有其他方法可以合并两个查询,或者在第一个查询中使用CessionecreditoDCOUNT来获取所需格式的报告?

请提供最佳的解决方案。感谢您的时间和帮助。

Cya ..谢谢

1 个答案:

答案 0 :(得分:0)

要执行此操作,您需要先根据年份设置组。然后,您需要根据组设置总计总和。这都是在ssrs中完成的,不会对SQL查询进行任何更改。