有如下表txinfo,要执行sql语句,获得下面的结果,我执行
select tx_date,tx_type,sum(xf_amt)as xf_amt from txinfo group by tx_date,tx_type;
但结果不对,请各位高手指点
tx_date tx_wz tx_type xf_amt
2009-8-1 01 CH 260.00
2009-8-1 01 YY 120.00
2009-8-1 01 LQ 100.00
2009-8-1 02 LQ 200.00
2009-8-1 02 CH 650.00
2009-8-1 03 LQ 200.00
2009-8-1 03 CH 640.00
2009-8-2 01 LQ 100.00
2009-8-2 03 LQ 100.00
2009-8-2 03 CH 360.00
2009-8-2 02 LQ 200.00
结果:
tx_date tx_type xf_amt
2009-8-1 CH 1150.00
2009-8-1 YY 120.00
2009-8-1 LQ 400.00
2009-8-2 CH 360.00
2009-8-2 LQ 300.00
select tx_date,tx_type,sum(xf_amt)as xf_amt from txinfo group by tx_date,tx_type;
但结果不对,请各位高手指点
tx_date tx_wz tx_type xf_amt
2009-8-1 01 CH 260.00
2009-8-1 01 YY 120.00
2009-8-1 01 LQ 100.00
2009-8-1 02 LQ 200.00
2009-8-1 02 CH 650.00
2009-8-1 03 LQ 200.00
2009-8-1 03 CH 640.00
2009-8-2 01 LQ 100.00
2009-8-2 03 LQ 100.00
2009-8-2 03 CH 360.00
2009-8-2 02 LQ 200.00
结果:
tx_date tx_type xf_amt
2009-8-1 CH 1150.00
2009-8-1 YY 120.00
2009-8-1 LQ 400.00
2009-8-2 CH 360.00
2009-8-2 LQ 300.00
你的xf_amt是什么类型的?
select tx_date,tx_type,sum(xf_amt) over(partition by tx_type order by tx_date) as xf_amt from txinfo group by tx_date,tx_type;
tx_date date,tx_wz varchar2(2),tx_type varchar2(2),xf_amt number(6,2));
--insert data……
select tx_date,tx_type,sum(xf_amt)as xf_amt from txinfo group by tx_date,tx_typeTX_DATE TX_TYPE XF_AMT
2009-8-1 ch 1550
2009-8-1 lq 500
2009-8-1 yy 120
2009-8-2 ch 360
2009-8-2 lq 400我这边测试没问题
--主要时间类型Tx_date,需要统一转化下select to_char(tx_date,'YYYY-MM-DD HH24:MI:SS'),tx_type,sum(xf_amt)as xf_amt from txinfo group by to_char(tx_date,'YYYY-MM-DD HH24:MI:SS'),tx_type;
我把数据库的表导出为sql,请大家再帮忙看哈,我要求的结果是得到每天每种付款方式的汇总金额,
说明:付款金额(xf_amt) = XF_SALESDR - XF_SALESCR
结果要求如下:
交易日期 付款方式 交易金额
2009-8-1 CH 1150.00
2009-8-1 YY 120.00
2009-8-1 LQ 400.00
2009-8-2 CH 360.00
2009-8-2 LQ 300.00 sql文件:http://www.newrokinplaza.com/upfile/dayten.rar急急急……
select error:[Oracle][odbc][ora]ORA-00979:不是GROUP BY表达式
你里面是什么格式呀,不是文本格式样的。顺便问一下tx_type里的1,2,3个表示什么意思,这里是关键。
没有啊,是个压缩包,解压后就是个文本的sql文件啊
加qq38848272,具体说
你用的是oracle吗,还是sqlserver
你的代码执行不了,有错误
报错如下:datetime不是oracle的关键字;{ts '2008-01-15 00:00:00'}中的{}无法识别
应该把datetime换成date,;{ts '2008-01-15 00:00:00'}更改为date'2008-01-15',decimal在oracle中一般用number代替 (我是指在oracle中,如果你用的不是oracle可以忽略)
执行结果如下:
select xf_txdate,XF_TENDERCODE ,sum(XF_SALESDR)as XF_SALESDR from dayten group by xf_txdate,XF_TENDERCODE XF_TXDATE XF_TENDERCODE XF_SALESDR
2008-1-1 CH 106147
2008-1-1 LQ 1300
2008-1-1 YY 36202.4
2008-1-2 CH 57438.9
2008-1-2 LQ 160
2008-1-2 YY 13583
2008-1-3 CH 58813.6
2008-1-3 LQ 300
2008-1-3 YY 12535.8
2008-1-4 CH 34829.7
2008-1-4 YY 16281.8
2008-1-5 CH 72485.3
2008-1-5 LQ 2700
2008-1-5 YM 9
2008-1-5 YY 26794.4
2008-1-6 CH 58733.1
2008-1-6 LQ 20
2008-1-6 YY 16393.6
2008-1-7 CH 44154.4
2008-1-7 LQ 20
2008-1-7 YM 0
2008-1-7 YY 9742
2008-1-8 CH 42241.4
2008-1-8 LQ 1500
2008-1-8 YM 0
2008-1-8 YY 12134
2008-1-9 CH 28752.8
2008-1-9 LQ 400
2008-1-9 YY 9348.1
2008-1-10 CH 31058.6
2008-1-10 LQ 700
2008-1-10 YY 9628.6
2008-1-11 CH 34111.9
2008-1-11 YY 9312.5
2008-1-12 CH 55706.1
2008-1-12 LQ 1610
2008-1-12 YY 19885.9
2008-1-13 CH 53585.5
2008-1-13 LQ 800
2008-1-13 YM 10
2008-1-13 YY 23482.4
2008-1-14 CH 35822.6
2008-1-14 LQ 40
2008-1-14 YY 16351.5
2008-1-15 CH 39105.7
2008-1-15 LQ 310
2008-1-15 YY 8006.8
你比较一下,应该没有问题
我对sqlserver不是很清楚,语法看起来也没问题,检查一下日期字段
实在不行的话可以去ms-sql server区问问
[ OVER (analytic_clause) ]
语法熟悉吗?不熟悉就需要看看了。你这个是在误导人家嘛?
你用的SUM统计函数的意思是这样的:
e.g:SELECT manager_id, last_name, salary,
SUM(salary) OVER (PARTITION BY manager_id ORDER BY salary
RANGE UNBOUNDED PRECEDING) l_csum
FROM employees;
--Results as follows:
MANAGER_ID LAST_NAME SALARY L_CSUM
---------- --------------- ---------- ----------
100 Mourgos 5800 5800
100 Vollman 6500 12300
100 Kaufling 7900 20200
100 Weiss 8000 28200
100 Fripp 8200 36400
100 Zlotkey 10500 46900
100 Raphaely 11000 68900
100 Cambrault 11000 68900
100 Errazuriz 12000 80900
. . .
149 Taylor 8600 30200
149 Hutton 8800 39000
149 Abel 11000 50000
201 Fay 6000 6000
205 Gietz 8300 8300
King 24000 24000
是的啊,我用的是正版的Oracle 10g啊,不过我是用Pb10连接数据库进行操作的。
可是你的创建表的代码在oracle上会报错的
没用过pb10,不知道怎么回事
你可以按我上面说的改一下字段类型
在oracle 自带的sql plus上运行看看
如果结果正常的话很可能就是pb连接的问题
天啊,闹鬼了,昨天执行后出来的结果不对,今天的就对了。
非常感谢wildwave兄