程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> net-mysql數據庫查詢的格式化

net-mysql數據庫查詢的格式化

編輯:編程綜合問答
mysql數據庫查詢的格式化

本人按一個日期段查詢表的記錄,為保證統一的處理方式,想讓查詢結果自動補全,如下所示:
billRec
100元,5人,2015-09-15
200元,6人,2015-09-21

而我想在查詢日期為2015-09-15至2015-09-30這個日期區間時顯示如下結果:
100元,5人,2015-09-15
0,0,2015-09-16
0,0,2015-09-17
……
200元,6人,2015-09-21
0,0,2015-09-22
0,0,2015-09-23
……
0,0,2015-09-30

也就是不存在的日期自動補為0,日期字段要顯示全部。

請高手給個方法,最好是sql實現,如果根本就不應該這麼處理,那如何對返回的記錄集DataTable上作處理,頓首百拜啊

最佳回答:


DROP TEMPORARY TABLE IF EXISTS TABLE_1;
CREATE TEMPORARY TABLE TABLE_1
(
SELECT *
FROM
(
SELECT '100YUAN' vMoney,'5REN' vNum,'2015-09-15' vDate
UNION ALL
SELECT '200YUAN','6REN','2015-09-21'
)a
);

DROP TEMPORARY TABLE IF EXISTS TABLE_2;
CREATE TEMPORARY TABLE TABLE_2
(
SELECT *
FROM
(
SELECT '2015-09-15' vDate
UNION ALL
SELECT '2015-09-16'
UNION ALL
SELECT '2015-09-17'
UNION ALL
SELECT '2015-09-18'
UNION ALL
SELECT '2015-09-19'
UNION ALL
SELECT '2015-09-20'
UNION ALL
SELECT '2015-09-21'
UNION ALL
SELECT '2015-09-22'
UNION ALL
SELECT '2015-09-23'
UNION ALL
SELECT '2015-09-24'
) a
);

SELECT a.vDate,IFNULL(b.vMoney,0) vMoney,IFNULL(b.vNum,0) vNum
FROM TABLE_2 a
LEFT JOIN TABLE_1 b ON a.vDate = b.vDate
ORDER BY a.vDate

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved