sql - 如何计算并将值插入表中,但计算取决于来自不同表的数据?
问题描述
示例:我有三张桌子 car,payment,rental
CREATE TABLE car(
car_id INTEGER NOT NULL PRIMARY KEY,
price_per_day REAL NOT NULL,
);
CREATE TABLE payment(
payment_id INTEGER NOT NULL PRIMARY KEY,
rental_id INTEGER NOT NULL,
payment_amount REAL NOT NULL,
);
CREATE TABLE rental(
rental_id INTEGER NOT NULL PRIMARY KEY,
rental_time VARCHAR(15) NOT NULL, --timestamp values
car_id INTEGER NOT NULL,
);
我想计算payment_amount,但必须从另一个表中准确获取该数据,必须从rental表中获取rental_time(天)并乘以另一个表(car )中的price_per_day,但必须准确地获取该价格(它是关于car_id)并插入到payment_amount列的支付表中。
我试过
UPDATE payment
SET p.payment_amount = (SELECT r.rental_time WHERE r.car_id=1)*(SELECT c.price_per_day WHERE c.car_id=1)
FROM payment p, rental r, car c;
错误:运算符不存在:字符变化 * 真实
第 2 行:...((SELECT r.rental_time WHERE r.car_id=1)*(SELECT c...
如果它应该根据 car_id 和不同的价格 (price_per_day) 而变化,为什么列数据相同?
解决方案
推荐阅读
- javascript - 找不到模块...映射为我的一个包
- javascript - 如何用文字表示法代理数组的实例化 []
- html - html的if语句
- kubernetes - 如何通过容器 IP 地址从 kube-apiserver 访问服务器
- ios - iOS中的标签高度问题
- java - ng2-file-upload File Like Object to Java File Object
- shell - 使用 mailx 命令触发邮件时出现问题
- jquery - Select2 JS取值
- vba - 网格视图。getcellvalue - 分析的行中是否有任何限制
- python - 如何为最小二乘法优化确定 ftol、xtol 和 gtol 的适当值?