2013-07-09 144 views
3

我写了这个查询,当我从下拉列表中选择一年时,这个查询给出了所有12个月中所有365天的明智数据。每月数据的sql查询

SELECT 
     YEAR(Date) AS [Year] 
    , MONTH(Date) AS [Month] 
    , COUNT(*) AS [Total] 
FROM EnquiryMaster 
WHERE EnquiryOwner = '" + enqowner + "' 
    AND DATEPART(yyyy, Date) = '" + year + "' 
    AND orgid = '" + orgid + "' 
GROUP BY 
     YEAR(Date) 
    , MONTH(Date) 

UNION ALL 

SELECT 
     YEAR(Date) AS [Year] 
    , NULL 
    , COUNT(*) 
FROM EnquiryMaster 
WHERE EnquiryOwner = '" + enqowner + "' 
    AND DATEPART(yyyy, Date) = '" + year + "' 
    AND orgid = '" + orgid + "' 
GROUP BY YEAR(Date) 

我想写一个查询,将只用于每月

+0

哪些数据您用于列日期的类型? – Ahmed

回答

1

我觉得这个选择月份也随着年份和显示数据是你想要什么,假设我的理解这个问题

SELECT 
    DATEPART(yyyy, Date), 
    DATEPART(mm, Date), 
    COUNT(*) AS [Total] 
FROM EnquiryMaster 
GROUP BY 
    DATEPART(yyyy, Date), 
    DATEPART(mm, Date) 
ORDER BY 
    DATEPART(yyyy, Date), DATEPART(mm, Date) 
+0

DATEPART(mm,Date)],在选择语句 – bvr

+0

中缺少逗号,它总共给出了月份。我想明智地和明智的日子.......我想检索所有30或31天的数据 – user2147357

0

如果你想导致只有一个月,然后把它放在第(1月,2月)

SELECT 
     YEAR(Date) AS [Year] 
    , MONTH(Date) AS [Month] 
    , COUNT(*) AS [Total] 
FROM EnquiryMaster 
WHERE EnquiryOwner = '" + enqowner + "' 
    AND DATEPART(yyyy, Date) = '" + year + "' 
    AND orgid = '" + orgid + "' 
    AND MONTH(Date) = '" + month + "' 
GROUP BY 
     YEAR(Date) 
    , MONTH(Date) 

UNION ALL 

SELECT 
     YEAR(Date) AS [Year] 
    , NULL 
    , COUNT(*) 
FROM EnquiryMaster 
WHERE EnquiryOwner = '" + enqowner + "' 
    AND DATEPART(yyyy, Date) = '" + year + "' 
    AND orgid = '" + orgid + "' 
     AND MONTH(Date) = '" + month + "' 
GROUP BY YEAR(Date)