使用SQL在oracle中进行计算

时间:2013-03-18 21:22:04

标签: sql oracle

您好我正在使用orcale,我已经在表之间创建了一个连接。我现在正在尝试插入计算,但它不断出现相同的错误消息“ORA-00933:SQL命令未正确结束” 我生成的代码就是这个..

select   "CUSTOMER"."CUST_ID" as "CUST_ID",
 "CUSTOMER"."CUST_TITLE" as "CUST_TITLE",
 "CUSTOMER"."CUST_FORENAME" as "CUST_FORENAME",
 "CUSTOMER"."CUST_SURNAME" as "CUST_SURNAME",
 "CUSTOMER"."CUST_ADDRESS_1" as "CUST_ADDRESS_1",
 "CUSTOMER"."CUST_ADDRESS_2" as "CUST_ADDRESS_2",
 "CUSTOMER"."CUST_TOWN-CITY" as "CUST_TOWN-CITY",
 "CUSTOMER"."CUST_COUNTY" as "CUST_COUNTY",
 "CUSTOMER"."CUST_POST_CODE" as "CUST_POST_CODE",
 "CUSTOMER"."CUST_TEL" as "CUST_TEL",
 "CUSTOMER"."CUST_EMAIL" as "CUST_EMAIL",
 "MENU_ITEM"."PRODUCT_PRICE" as "PRODUCT_PRICE",
 "ORDER_ITEM"."QUANTITY" as "QUANTITY",
 "ORDER_ITEM"."ORDER_ID" as "ORDER_ID",
 "ORDER_DETAILS"."ORDER_ID" as "ORDER_ID"
from     "ORDER_DETAILS" "ORDER_DETAILS",
 "ORDER_ITEM" "ORDER_ITEM",
 "MENU_ITEM" "MENU_ITEM",
 "CUSTOMER" "CUSTOMER"
where   "ORDER_ITEM"."ORDER_ID"="ORDER_DETAILS"."ORDER_ID"
 and     "ORDER_DETAILS"."CUST_ID"="CUSTOMER"."CUST_ID"
 and     "MENU_ITEM"."MENU_ITEM_ID"="ORDER_ITEM"."MENU_ITEM_ID"`

这是产生错误消息的代码

 select  "CUSTOMER"."CUST_ID" as "CUST_ID",
 "CUSTOMER"."CUST_TITLE" as "CUST_TITLE",
 "CUSTOMER"."CUST_FORENAME" as "CUST_FORENAME",
 "CUSTOMER"."CUST_SURNAME" as "CUST_SURNAME",
 "CUSTOMER"."CUST_ADDRESS_1" as "CUST_ADDRESS_1",
 "CUSTOMER"."CUST_ADDRESS_2" as "CUST_ADDRESS_2",
 "CUSTOMER"."CUST_TOWN-CITY" as "CUST_TOWN-CITY",
 "CUSTOMER"."CUST_COUNTY" as "CUST_COUNTY",
 "CUSTOMER"."CUST_POST_CODE" as "CUST_POST_CODE",
 "CUSTOMER"."CUST_TEL" as "CUST_TEL",
 "CUSTOMER"."CUST_EMAIL" as "CUST_EMAIL",
 "MENU_ITEM"."PRODUCT_PRICE" as "PRODUCT_PRICE",
 "ORDER_ITEM"."QUANTITY" as "QUANTITY",
 "ORDER_ITEM"."ORDER_ID" as "ORDER_ID",
 "ORDER_DETAILS"."ORDER_ID" as "ORDER_ID"
   from  "ORDER_DETAILS" "ORDER_DETAILS",
 "ORDER_ITEM" "ORDER_ITEM",
 "MENU_ITEM" "MENU_ITEM",
 "CUSTOMER" "CUSTOMER"
where   "ORDER_ITEM"."ORDER_ID"="ORDER_DETAILS"."ORDER_ID"
 and     "ORDER_DETAILS"."CUST_ID"="CUSTOMER"."CUST_ID"
 and     "MENU_ITEM"."MENU_ITEM_ID"="ORDER_ITEM"."MENU_ITEM_ID"
SELECT PRODUCT_PRICE,
       QUANTITY, 
       PRODUCT_PRICE * QUANTITY AS "TOTAL SPENT"
FROM   MENU_ITEM,ORDER_ITEM

1 个答案:

答案 0 :(得分:2)

SQL的问题在于您的第二个“SELECT”语句会打开一个新的SQL命令。如果要向查询中添加一个名为“TOTAL_SPENT”的新列,该列将PRODUCT_PRICE和QUANTITY相乘,请将其添加到主查询的SELECT列表中。添加第二个SELECT语句不会将结果合并到第一个SELECT语句中。

你想要这样的东西:

select  "CUSTOMER"."CUST_ID" as "CUST_ID",
 "CUSTOMER"."CUST_TITLE" as "CUST_TITLE",
 "CUSTOMER"."CUST_FORENAME" as "CUST_FORENAME",
 "CUSTOMER"."CUST_SURNAME" as "CUST_SURNAME",
 "CUSTOMER"."CUST_ADDRESS_1" as "CUST_ADDRESS_1",
 "CUSTOMER"."CUST_ADDRESS_2" as "CUST_ADDRESS_2",
 "CUSTOMER"."CUST_TOWN-CITY" as "CUST_TOWN-CITY",
 "CUSTOMER"."CUST_COUNTY" as "CUST_COUNTY",
 "CUSTOMER"."CUST_POST_CODE" as "CUST_POST_CODE",
 "CUSTOMER"."CUST_TEL" as "CUST_TEL",
 "CUSTOMER"."CUST_EMAIL" as "CUST_EMAIL",
 "MENU_ITEM"."PRODUCT_PRICE" as "PRODUCT_PRICE",
 "ORDER_ITEM"."QUANTITY" as "QUANTITY",
 "ORDER_ITEM"."ORDER_ID" as "ORDER_ID",
 "ORDER_DETAILS"."ORDER_ID" as "ORDER_ID",
 PRODUCT_PRICE * QUANTITY AS "TOTAL SPENT"
   from  "ORDER_DETAILS" "ORDER_DETAILS",
 "ORDER_ITEM" "ORDER_ITEM",
 "MENU_ITEM" "MENU_ITEM",
 "CUSTOMER" "CUSTOMER"
where   "ORDER_ITEM"."ORDER_ID"="ORDER_DETAILS"."ORDER_ID"
 and     "ORDER_DETAILS"."CUST_ID"="CUSTOMER"."CUST_ID"
 and     "MENU_ITEM"."MENU_ITEM_ID"="ORDER_ITEM"."MENU_ITEM_ID"

根据其他表中的列,您可能需要使用其表名限定PRODUCT_PRICE和QUANTITY,例如SQL中的其他列引用。