有3个表,订单表orderinfo A,订单产品表orderproduct B,回款表payment C,其中A表中有订单日期,操作员
B表中有产品金额
C表中有回款日期,回款金额,操作员列表页面要求显示:
日期 借方 贷方 余额 操作员请问我怎样将订单日期和回款日期、A表中的操作员和C表中的操作员、产品金额以及回款金额显示在上面的列表中?
B表中有产品金额
C表中有回款日期,回款金额,操作员列表页面要求显示:
日期 借方 贷方 余额 操作员请问我怎样将订单日期和回款日期、A表中的操作员和C表中的操作员、产品金额以及回款金额显示在上面的列表中?
解决方案 »
- ORACLE 进入间置的执行处理
- 我将dbms_lob.fileopen操作的文件修改或删除后,为什么它仍然能读取到文件?
- 根据关键字把结果集合并问题
- 求有一定难度的SQL语法
- 非常有挑战性的sql语句,高手进~
- 急救:如何将一个SQL查询结果赋给C++的一个变量
- 启动不了SQLPLUS
- 这个sql该怎么写?关于rownum和order和外查询值做为内查询的参数
- ORA-00001: 违反唯一约束条件的疑问!
- 高分求教Oracle的导入导出问题(内详).
- sql loader如何去掉多余的空格??
- oracle进程处理数的问题(不能超过150个?)<在线等,正在用户那里调试,急呀,解决马上给分>
B 表:payment_id,order_id,client_id,payment_mode,money,register_pers,payment_date,re;
C 表: orderpro_id,order_id,product_id,quantity,price,money
比如:
A表的订单日期为2004-01-21,操作员为a;
B表的产品金额为1000.00;
C表的回款日期为2004-01-22,回款金额为2000,操作员为b;
那么列表显示为:
日期 借方 贷方 余额 操作员
2004-01-21 1000.00 -1000.00 a
2004-01-22 2000.00 1000.00 b
客户id order_id 借方 贷方 余额 借款操作员 借款日期 还款操作员 还款日期
A表: 记录销售订单:相关字段 order_id,operator,register_date
B表: 记录销售回款记录:相关字段 order_id,operator,payment_date,money
C表: 记录订单中产品的销售金额:相关字段 order_id, moeny余额要在SQL中计算在你已经指定了某一订单和产品产品的情况下,相关条件忽略请参考用下面的语句 (9i, 未测试) SELECT r_date,r_money,p_money,
SUM(NVL(p_money,0)-NVL(r_money,0)) OVER( ORDER BY register_date),
operator
FROM (
SELECT register_date r_date, money r_money, NULL p_money,operator
FROM a, c
WHERE a.order_id = c.order_id
UNION ALL
SELECT payment_date r_date, NULL r_money, payment_money,p_money,operator
FROM B
)
SUM(NVL(p_money,0)-NVL(r_money,0)) OVER( ORDER BY register_date),
operator
FROM (
SELECT register_date r_date, money r_money,
NULL p_money,operator
FROM a, c
WHERE a.order_id = c.order_id
UNION ALL
SELECT payment_date r_date, NULL r_money,
payment_money p_money,operator
FROM B
)上面的语句多一逗号。
SUM(NVL(p_money,0)-NVL(r_money,0)) OVER( ORDER BY register_date),
operator
FROM (
SELECT register_date r_date, money r_money,
NULL p_money,operator
FROM a, c
WHERE a.order_id = c.order_id
UNION ALL
SELECT payment_date r_date, NULL r_money,
payment_money p_money,operator
FROM B
)
order by 1
SELECT register_date r_date, money r_money,
NULL p_money,operator
FROM a, c
WHERE a.order_id = c.order_id
UNION ALL
SELECT payment_date r_date, NULL r_money,
payment_money p_money,operator
FROM B
在执行这段sql语句的时候报错:
ora-01790:表达式必须具有与对应表达式相同的数据类型
0 p_money,operator
FROM a, c
WHERE a.order_id = c.order_id
UNION ALL
SELECT payment_date r_date, 0 r_money,
payment_money p_money,operator
FROM B