重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
SQL select * from orderr;
创新互联建站主要从事网站制作、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务平原,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
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" "产品名称","ORDERR"."ORDERDATA" "订购日期","ORDERDETAIL"."PRICE"*"ORDERDETAIL"."COUNT" "产品销售额",
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";
产品 订购日期 产品销售额 订购季度
---- -------------- ---------- ----------
床 01-1月 -12 450000 1
车 01-1月 -12 500000 1
有什么问题?
另外说一下:
1、你“产品名称”前面的双引号有问题。
2、在双引号引用中是必须区分大小写的。
3、orderdata前的表名呢?
一般情况下,你的明细数据表都有个日期字段来表明你明细的时间,
数据量比较小可以这样
select sum(...) from tabname where to_char(时间,'q')=你想查询的季度
如果数据量比较大,建议你根据明细表建立一个快速刷新的物化视图,物化视图是根据季度、星期等等的预先统计数据,到时候你要的数据直接从物化视图中查询即可
select to_char(TO_DATE('20171123', 'YYYYMMDD'), 'yyyyiw') as week, --oracle求当年的第几周
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
通过配置本地数据库的tns配置文件实现:
去oracle安装目录下oracle\product\10.2.0\db_2\NETWORK\ADMIN\ 找到tnsnames.ora,用记事本打开,里边有远程数据库的tns连接配置串如下
ORCL23 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.23)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ORCL)
)
)
添加好ip、端口和目标数据库的实例名(SID),然后确保tns名称(ORCL23)在整个文档中唯一,保存后打开数据库连接工具,输入远程数据库上的用户名密码,选择数据库对象为你配置的连接名就可以了
select to_char(sysdate, 'yyyy"年"mm"月"dd"日 是 "yyyy"年第"iw"周"') as week, --oracle求当年的第几周
to_char(sysdate, 'yyyy"年"mm"月"dd"日 是 "yyyy"年第"ww"周"') as week2, --oracle求当年的第几周
to_char(sysdate, 'yyyy"年"mm"月"dd"日 是 "yyyy"年第"ddd"天"') as day, --oracle求当年的第几天
to_char(sysdate, 'yyyy"年"mm"月"dd"日 是 "yyyy"年第"q"季度"') as quarter -- oracle求当年的第几季度
from dual;
大概就是上面这样,用iw或者ww提取。
WEEK
--------------------------------------------------------------------------
WEEK2
--------------------------------------------------------------------------
DAY
----------------------------------------------------------------------------
QUARTER
------------------------------------------------------------------------------
2017年06月12日 是 2017年第24周
2017年06月12日 是 2017年第24周
2017年06月12日 是 2017年第163天
2017年06月12日 是 2017年第2季度
工具/材料:Management Studio。
1、首先在桌面上,点击“Management Studio”图标。
2、之后在该界面中,点击左上角“新建查询”选项。
3、接着在该界面中,输入获取今年的上一年和下一年(去年与明年)的sql语句“select year(getdate())-1 AS "去年" , year(getdate())+1 AS "明年"”。
4、然后在该界面中,点击左上方“执行”按钮。
5、最后在该界面中,显示获取今年的上一年和下一年(去年与明年)成功。