我需要将3张桌子加在一起,并从中获取日期,价格和客户ID。这是描述:
首先,您需要确定从2012年1月1日至今,购买“自行车配件”部门产品的客户ID。为此,您需要将订单加入到产品的订单行中。
然后在您的父查询中,您将订单连接到订单行并过滤子查询结果中的客户ID。要计算终身订单收入,您需要对价格*数量的结果执行汇总函数。
所以我有一个带有客户ID的客户表,一个带有订单号,价格和数量的订单表,一个带有客户ID,订单号和订单日期的订单表,以及一个带有分部的产品表(需要获得'自行车配件'检索)。我写了这个,我从“无效的标识符”到“缺少表达式”的错误取决于我的移动。
select bc_orders.order_number, bc_orderlines.price, bc_orderlines.quantity, bc_orderlines.quantity*bc_orderlines.price AS "Total Revenue"
from (select bc_orders.*, bc_orderlines.*, bc_products.*
from bc_customers
join bc_orders
on bc_orders.order_number = bc_orderlines.order_number
join bc_products
on bc_products.sku = bc_orderlines.sku
where bc_orders.order_date >= '01-JAN-2012')
inner join bc_orderlines
on bc_orders.order_number = bc_orderlines.order_number
我回来了:
命令行错误:5列:31
错误报告:
SQL错误:ORA-00904:“BC_ORDERLINES”。“ORDER_NUMBER”:无效标识符
帮助!
答案 0 :(得分:0)
from
子句的计算方式与读取它的方式相同。这意味着在on
子句中可以提及表别名之前,需要将其定义为表。您在定义之前使用orderlines
。因此错误。
这很容易解决:
from(select bc_orders。*,bc_orderlines。*,bc_products。* 来自bc_customers加入 bc_orders 在bc_orders.customer_number = bc_customers.customer_number加入 bc_orderlines 在bc_orders.order_number = bc_orderlines.order_number加入 bc_products 在bc_products.sku = bc_orderlines.sku 其中bc_orders.order_date> =' 01-JAN-2012' )bc
一些注意事项: