因此,我们有一个表,它基本上包括了一张票的大部分票证详细信息,除了非常长的内容(如注释、技术说明、图片等),这些链接在其他表中的其他地方,等等。
我们希望在数据表中返回有关各种票证的指标。例如:
SELECT Category, Count(Category) FROM tickets
WHERE Date_SUB(CURDATE(), Interval 16 Hour) <= Datez GROUP BY Category这将返回一个结果列表,例如,我们的每个类别以及它们的计数。
但是,如果我们想要针对不同间隔调整这个值,比如返回16 hours、1 day、30 day、3 month、12 month和All time的数字,我们是否必须运行相同的查询次数(例如,对于列出的每个减去所有时间的次数,运行该查询5次?
最终,我们希望在我们的C# Winforms应用程序中使用某种类型的仪表板中的计数,它将显示各种票证数据,以便我们可以看到部门的工作情况;但是,如果我们不得不坐在那里,每隔几分钟运行5次查询,这可能会导致系统停滞,不是吗?
发布于 2012-07-31 07:57:26
您可以尝试如下所示:
SELECT
Category,
IF(Date_SUB(CURDATE(), Interval 16 Hour) <= Datez, SUM(1), 0) AS c16hours,
IF(Date_SUB(CURDATE(), Interval 1 day) <= Datez, SUM(1), 0) AS c1day,
IF(Date_SUB(CURDATE(), Interval 30 days) <= Datez, SUM(1), 0) AS c30days,
(...)
FROM tickets
GROUP BY Category这应该是可行的(但是我没有测试这个例子,只是给你一些理论)!
祝好运。
发布于 2012-07-31 07:53:36
我相信你也可以在WHERE语句后面添加一个AND语句来继续这个列表。
这将定义。缩短它
https://stackoverflow.com/questions/11731241
复制相似问题