2016-04-18 35 views
0

在mysql中,我創建了一個查詢,我想要獲取每個日期的最後一個月數據,並且如果沒有找到特定日期的記錄,那麼它應該顯示0 。如果在特定日期沒有找到記錄,我想顯示0

我的MySQL查詢是從testviewaudit內部聯接tmtests上 testviewaudit.testid = tmtests.tsid其中DATE

SELECT SUM(testviewaudit.action = 1)AS視圖, DATE(testviewaudit.datetime) (testviewaudit.datetime) BETWEEN NOW() - INTERVAL 30 DAY AND NOW()group by DATE(testviewaudit.datetime) order by DATE(testviewaudit.datetime) asc;

以及我已經使用這個也但沒有成功

選擇IFNULL從testviewaudit內(SUM(testviewaudit.action = 1),0)AS視圖, DATE(testviewaudit.datetime)加入tmtests在 testviewaudit.testid = tmtests.tsid其中,DATE(testviewaudit.datetime) asc;

仍然得到同樣的結果

+0

什麼是「相同的結果」? – Stultuske

+0

我想查看日期84 \t 2016-03-30 2016-03-31 0 \t 2016-03-31基本上我想0如果沒有找到記錄 –

+0

好的,可以重新翻譯一下:請告訴我們發生了什麼事? – Stultuske

回答

0

試試這個:

select if(is null(testviewaudit.action), 0 , sum(testviewaudit.action=1)) AS view, 
DATE(testviewaudit.datetime) from testviewaudit inner join tmtests on testviewaudit.testid=tmtests.tsid 
where DATE(testviewaudit.datetime) BETWEEN NOW() - INTERVAL 30 DAY AND NOW() group by DATE(testviewaudit.datetime) order by DATE(testviewaudit.datetime) asc; 
0

嘗試把整個查詢在IFNULL。

SELECT IFNULL((SELECT field1 FROM table WHERE id = 1) ,'not found'); 
+0

我一樣說,這裏是我的查詢SELECT IFNULL((從testviewaudit內選擇總和(testviewaudit.action = 1)來看, \t \t \t \t DATE(testviewaudit.datetime)加入tmtests上testviewaudit.testid = tmtests.tsid (testviewaudit.datetime)BETWEEN NOW() - INTERVAL 30 DAY AND NOW()組by DATE(testviewaudit.datetime)),'not found');但是仍然沒有記錄不存在 –

+0

用0替換'未找到' – Eritrean

相關問題