2012-07-30 81 views
0

因此,我們有一個表格,基本上包含了一張票的大部分票據詳情,除了可怕的很長的東西(如筆記,技術說明,圖片等)外,這些表格與其他表中的其他地方等。MySQL數據統計

我們希望返回有關數據表中各種票據的度量標準。例如:

SELECT Category, Count(Category) FROM tickets 
WHERE Date_SUB(CURDATE(), Interval 16 Hour) <= Datez GROUP BY Category 

這將返回一個結果列表,例如,我們的每一個類別,以及它們的計數。

但是,如果我們要調整這種對不同的時間間隔,像比如說16 hours1 day30 day3 month12 monthAll time返回的數字,我們要必須運行同一查詢的時間#(如對於列出的每一個減去所有時間,運行該查詢5次?

最終,我們希望在我們的C#Winforms應用程序中使用某種儀表板中的計數,這會向我們顯示各種票數據,所以我們可以看看這個部門是怎麼做的;但是,如果我們必須坐在那裏並且每隔幾分鐘運行5次查詢,那可能會導致系統停滯不前?

回答

1

你可以嘗試這樣的事:

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 

這應該工作(但我沒有測試過的例子,只是給你一些理論)!

祝你好運。

-1

我確定你可以在WHERE語句之後添加一個AND語句來繼續這個列表。

這將確定。縮短它