【发布时间】:2021-09-04 07:06:51
【问题描述】:
我正在处理汽车租赁任务。
我坚持的部分是根据总成本更新TRANSACTIONS_TEST 表的Amount_Due。
总费用的计算方法是将CAR_TEST 表中的Price 乘以TRANSACTIONS_TEST.PickupDate 和TRANSACTIONS_TEST.ReturnDate 之间的总天数。
我不确定如何正确连接两个表/列来计算。
这是表格:
CREATE TABLE CAR_TEST
(
carID int PRIMARY KEY,
Make varchar(15) NOT NULL,
Model varchar(15) NOT NULL,
Type varchar(10) NOT NULL,
Year char(4) NOT NULL,
Price int NOT NULL,
);
CREATE TABLE TRANSACTIONS_TEST
(
tID int PRIMARY KEY,
cID int REFERENCES CUSTOMER_TEST(cID),
carID int REFERENCES CAR_TEST(carID),
eID int REFERENCES EMPLOYEE_TEST(eID),
tDate date NOT NULL,
PickupDate date NOT NULL,
ReturnDate date NOT NULL,
);
这是我试图做到这一点的困惑尝试:
SELECT *
FROM TRANSACTIONS_TEST, CAR_TEST
WHERE CAR_TEST.carID = TRANSACTIONS_TEST.carID
UPDATE TRANSACTIONS_TEST
SET Amount_Due = (DATEDIFF(DAY, PickupDate, ReturnDate) * CAR_TEST.Price)
如果有人能指出正确的方向,将不胜感激。
【问题讨论】:
-
请显示一些示例数据和所需的结果(格式文本)。
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(差不多 30 年前),不鼓励使用它 -
Year char(4) NOT NULL不,重新开始。年份是一个 4 位数字。
标签: sql sql-server tsql join sql-update