SQL語句做報表統計,sql語句報表

來源:互聯網
上載者:User

SQL語句做報表統計,sql語句報表
-- 一些用到的基本SQL函數
-- 返回日期中年的值: SQL YEAR 函數。
-- 返回日期中月的值: SQL Month 函數。
-- 返回日期中日的值: SQL Day 函數。--DATE_ADD() :函數向日期添加指定的時間間隔。
-- LAST_DAY() :返回某個時間值的當月最後一天
-- MAKEDATE():給出年份值和一年中的天數值,返回一個日期
-- CONCAT :拼接日期
-- ELT 匹配運算式
-- SQL EXTRACT() 函數用來從一個日期運算式中提取值(年,月,日等)


-- NOW():目前時間,在具體的使用中可以替換成符合DATE格式的任意時間
-- 擷取目前時間 yyyy-mm--dd hh:mm:ss
SELECT NOW() AS times
-- 擷取當前日期 yyyy-mm-dd
SELECT DATE(NOW()) AS times

-- 查詢 年 季度 月


-- 查詢月的最後一天
SELECT  LAST_DAY(NOW())AS times;

-- 查詢下一月的第一天
SELECT DATE_ADD( LAST_DAY(NOW()),INTERVAL 1 DAY) AS times

-- 查詢當月的第一天
SELECT DATE_ADD(DATE_ADD(LAST_DAY(NOW()),INTERVAL 1 DAY),INTERVAL -1 MONTH) AS times


-- 查詢季度


-- 查詢當前季度
SELECT QUARTER(NOW()) AS times

-- 查詢季度的第一個月
SELECT ELT(QUARTER(NOW()),1,4,7,10) AS times

-- 擷取本季度的第一天
SELECT DATE(CONCAT(YEAR(NOW()),'-',ELT(QUARTER(NOW()),1,4,7,10),'-1')) AS times


-- 擷取本年度的第一天
SELECT MAKEDATE(EXTRACT(YEAR FROM NOW()),1) AS times

-- 擷取本季度最後一天
SELECT LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM NOW()),1) + INTERVAL QUARTER(NOW())*3-1 MONTH) AS times


-- 擷取本季度第一個月第一天
SELECT DATE_ADD(DATE_ADD(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM NOW()),1) + INTERVAL QUARTER(NOW())*3-3 MONTH),INTERVAL 1 DAY),INTERVAL -1 MONTH) AS times

-- 擷取本季度第一個月最後一天
SELECT LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM NOW()),1) + INTERVAL QUARTER(NOW())*3-3 MONTH) AS times
-- 當然不同季度的可以通過改變後邊乘的參數得到


-- 使用的一條統計語句
-- 實現對應日期季度中第一個月單個產品銷量統計(對銷售單做的統計) dataEx:為一個時間變數
SELECT b.productname productnames,SUM(b.ordercount) ordercounts,SUM(b.subtotal) subtotals FROM orders a,child_orders b WHERE a.id = b.orders_id AND b.productname = 'productnames'
AND  a.create_date >= DATE_ADD(DATE_ADD(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM '"+dataEx+"'),1) + INTERVAL QUARTER('"+dataEx+"')*3-3 MONTH),INTERVAL 1 DAY),INTERVAL -1 MONTH) AND a.create_date <= LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM '"+dataEx+"'),1) + INTERVAL QUARTER('"+dataEx+"')*3-3 MONTH)
GROUP BY productnames ORDER BY a.create_date DESC

註:
當然這隻是一條一條的查詢語句,實現同樣的功能當然還有其他的語句,這裡只是我使用的覺得可以的語句,實現統計當然還有好多工作要做。
後面還需多多學習,有覺得不合適的地方,還望大神給與指點,Thanks

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.