select to_char(TO_DATE('20171123', 'YYYYMMDD'), 'yyyyiw') as week, --oracle求當年的第幾周
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、梁園ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學管理、有技術(shù)的梁園網(wǎng)站制作公司
to_char(TO_DATE('20171123', 'YYYYMMDD'), 'yyyyww') as week2, --oracle求當年的第幾周
to_char(TO_DATE('20171123', 'YYYYMMDD'), 'yyyy') as year, --oracle求第幾年
to_char(TO_DATE('20171123', 'YYYYMMDD'), 'yyyymm') as month, --oracle求當年的第幾月
to_char(TO_DATE('20171123', 'YYYYMMDD'), 'yyyyddd') as day, --oracle求當年的第幾天
to_char(TO_DATE('20171123', 'YYYYMMDD'), 'yyyyq') as quarter -- oracle求當年的第幾季度
from dual
-----------
SELECT
to_char(sysdate,'day') 星期幾,
to_char(SYSDATE,'ddd') 第幾天,
to_char(SYSDATE,'ww') 第幾周,
to_char(SYSDATE,'mm') 第幾月,
to_char(SYSDATE,'q') 第幾季
FROM dual
一般情況下,你的明細數(shù)據(jù)表都有個日期字段來表明你明細的時間,
數(shù)據(jù)量比較小可以這樣
select sum(...) from tabname where to_char(時間,'q')=你想查詢的季度
如果數(shù)據(jù)量比較大,建議你根據(jù)明細表建立一個快速刷新的物化視圖,物化視圖是根據(jù)季度、星期等等的預先統(tǒng)計數(shù)據(jù),到時候你要的數(shù)據(jù)直接從物化視圖中查詢即可
SQL select * from orderr;
PRODID ORDID ORDERDATA
---------- ---------- --------------
1 100 01-1月 -12
2 200 01-1月 -12
SQL select * from PRODUCT;
PRODID PROD
---------- ----
1 車
2 床
SQL select * from ORDERDETAIL;
PRODID PRICE COUNT ORDID
---------- ---------- ---------- ----------
1 50000 10 100
2 30000 15 200
SQL select "PRODUCT"."PRODNA" "產(chǎn)品名稱","ORDERR"."ORDERDATA" "訂購日期","ORDERDETAIL"."PRICE"*"ORDERDETAIL"."COUNT" "產(chǎn)品銷售額",
2 to_char("ORDERR"."ORDERDATA",'q') "訂購季度"
3 from PRODUCT,ORDERDETAIL,ORDERR
4 where "PRODUCT"."PRODID"="ORDERDETAIL"."PRODID" AND "ORDERDETAIL"."ORDID"="ORDERR"."ORDID"
5 group by "ORDERR"."ORDERDATA","ORDERDETAIL"."PRICE"*"ORDERDETAIL"."COUNT",to_char("ORDERR"."ORDERDATA",'q'),"PRODUCT"."PRODNA";
產(chǎn)品 訂購日期 產(chǎn)品銷售額 訂購季度
---- -------------- ---------- ----------
床 01-1月 -12 450000 1
車 01-1月 -12 500000 1
有什么問題?
另外說一下:
1、你“產(chǎn)品名稱”前面的雙引號有問題。
2、在雙引號引用中是必須區(qū)分大小寫的。
3、orderdata前的表名呢?