2017-10-05 31 views
0

什么,我要做的是计算diner_payment_due(DINER TABLE),由food_serve_size(FS_DINER TABLESQL乘2列的2页不同的表

CREATE TABLE diner (
diner_no   NUMBER(8) NOT NULL, 
diner_payment_due NUMBER(6,2) NOT NULL, 
diner_seat_no  NUMBER(2) NOT NULL, 
diner_seated  DATE NOT NULL, 
diner_completed  DATE, 
table_no   NUMBER(2) NOT NULL 
); 


CREATE TABLE food_serve (
food_item_no   NUMBER(4) NOT NULL, 
food_serve_size  CHAR(2) NOT NULL, 
food_serve_kilojoules NUMBER(4) NOT NULL, 
food_serve_cost  NUMBER(5,2) NOT NULL 
); 


CREATE TABLE FS_DINER (
DINER_NO NUMBER(8) NOT NULL, 
FOOD_ITEM_NO NUMBER(4) NOT NULL, 
FOOD_SERVE_SIZE CHAR(2 BYTE) NOT NULL, 
FS_DINER_NO_SERVES NUMBER(1) NOT NULL, 
FS_DINER_ITEM_SERVED CHAR (1) NOT NULL, 
CONSTRAINT pk_fs_diner PRIMARY KEY (DINER_NO, FOOD_ITEM_NO,FOOD_SERVE_SIZE) 
); 

乘以food_serve_cost(FOOD_SERVE TABLE)我只需要返回一个值和然后插入餐桌,我想我需要做一个Inner Join,然后只需sum (food_serve_cost * NO_SERVES)然后group by DINER_NO?基于其他两个表中的值

INSERT INTO DINER (DINER_NO, DINER_PAYMENT_DUE, DINER_SEAT_NO, DINER_SEATED, DINER_COMPLETED, TABLE_NO) INSERT INTO DINER VALUES (1, SELECT SUM (FOOD_SERVE.FOOD_SERVE_COST * FS_DINER..., , 1, 1/05/2017, 1 /05/2017, 1);

+0

什么口味的SQL这是,什么你尝试过这么远吗?你是试图一次找到所有的条目,还是只为特定的条目? –

+0

只是oracle的sql,我只需要返回一个值,然后插入到餐桌,即时通讯想我需要做一个内部连接,然后简单地sum(food_serve_cost * NO_SERVES),然后由DINER_NO组? INSERT INTO DINER(DINER_NO,DINER_PAYMENT_DUE,DINER_SEAT_NO,DINER_SEATED, DINER_COMPLETED,TABLE_NO) INSERT INTO DINER VALUES(1,SELECT SUM (FOOD_SERVE.FOOD_SERVE_COST * FS_DINER ...,1, 2017年1月5日, 2017年1月5日,1); – adam

+0

请分享样本数据和期望的结果。 – zarruq

回答

0

正在更新的晚餐表。

INSERT INTO DINER 
    (SELECT fs.diner_no, 
      (fs.food_serve_cost * fd.FOOD_SERVE_SIZE), 
      11,sysdate,sysdate,11 /*Am assuming, Due to Not null constraint, there will be error*/ 
    FROM food_serve fs, 
      FS_DINER fd 
    WHERE fs.food_item_no = fd.food_item_no)