3

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

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)

我想编写一个查询,该查询还将选择月份和年份并仅显示该月份的数据

4

2 回答 2

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)
于 2013-07-09T06:10:44.257 回答
0

如果你只想要一个月的结果,那么把它放在 where 子句中(1 代表 1 月,2 代表 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)
于 2013-07-09T06:16:47.310 回答