如何在 asp.net 图表中获得每月比较显示

how to get monthly compare display in asp.net chart

在我的 Table 中,我有一个列名 Transdate 它包含格式为 dd-mm-yyyy 的交易日期。我正在使用图表来显示月度交易, 我已将查询用作。

SELECT 
    [p].Transdate AS [Month/Year] ,
    Sum([p].Litres) [Total Sale]
FROM CustomerPoints AS [p] 
INNER JOIN Customers AS [c] 
    ON [c].[CustomerID]=[p].[CustomerID] 
WHERE 
    [p].Transdate BETWEEN '2013-01-20' AND '2015-03-05'
    AND [c].DistributorID = '1'
GROUP BY [p].Transdate 
ORDER BY [p].Transdate ASC 

上面的查询以日期形式提供了数据 .

Month/Year         Total Sale      
1-02-2012          500
2-02-2012          500

我想要

Month/Year          Total Sale
02-2012              1000

即我想查询按月而不是按日期计算总和(总销售额)。

尝试SQL日期部分()/月()/年()

SELECT 
   CAST((MONTH([p].Transdate)+'-'+YEAR([p].Transdate)) as VARCHAR(50)) AS [Month/Year],
   SUM([p].Litres) [Total Sale] 
FROM CustomerPoints as [p] 
INNER JOIN Customers as [c]
           ON [c].[CustomerID]=[p].[CustomerID] 
WHERE [p].Transdate BETWEEN '2013-01-20' AND '2015-03-05' 
AND [c].DistributorID='1' 
GROUP BY CAST((MONTH([p].Transdate)+'-'+YEAR([p].Transdate)) as VARCHAR(50))
ORDER BY [p].Transdate ASC 

或者

SELECT 
    CAST(CAST((DATEPART(MONTH,[p].Transdate))as VARCHAR(50))
+'-'+CAST((DATEPART(YEAR,[p].Transdate))as VARCHAR(50))) AS [Month/Year], 
    SUM([p].Litres) [Total Sale]
FROM CustomerPoints as [p] 
INNER JOIN Customers as [c]
           ON [c].[CustomerID]=[p].[CustomerID] 
WHERE [p].Transdate BETWEEN '2013-01-20' AND '2015-03-05' 
AND [c].DistributorID='1'
GROUP BY CAST(CAST((DATEPART(MONTH,[p].Transdate))as VARCHAR(50))
+'-'+CAST((DATEPART(YEAR,[p].Transdate))as VARCHAR(50))) 
ORDER BY [p].Transdate ASC 

试试这个..

SELECT 
   CAST((MONTH([p].Transdate)+'-'+YEAR([p].Transdate)) as VARCHAR(50)) AS [Month/Year],
   SUM([p].Litres) [Total Sale] 
FROM CustomerPoints as [p] 
INNER JOIN Customers as [c]
           ON [c].[CustomerID]=[p].[CustomerID] 
WHERE [p].Transdate BETWEEN '2013-01-20' AND '2015-03-05' 
AND [c].DistributorID='1' 
GROUP BY CAST((MONTH([p].Transdate)+'-'+YEAR([p].Transdate)) as VARCHAR(50))
ORDER BY [p].Transdate ASC 
SELECT 
Cast((Datepart(Month,[p].Transdate)) as varchar(50))
+'-'+ Cast((Datepart(Year,[p].Transdate))as varchar(50)) AS [Month/Year]
,Sum([p].Litres) [Total Sale]
FROM CustomerPoints as [p] 
Inner Join Customers as [c]
on [c].[CustomerID]=[p].[CustomerID] 
where [p].Transdate between '2013-01-20' AND '2015-03-05' 
AND [c].DistributorID='1'
GROUP BY Cast((Datepart(Month,[p].Transdate)) as varchar(50)) + '-'+ Cast((Datepart(Year,[p].Transdate))as varchar(50))
ORDER BY Cast((Datepart(Month,[p].Transdate)) as varchar(50)) + '-'+ Cast((Datepart(Year,[p].Transdate))as varchar(50)) ASC