【发布时间】:2021-06-22 06:54:55
【问题描述】:
我想将查询结果添加到表中。有多个值被插入到当前为 NULLS 的多行中。
我有以下表格:
CREATE TABLE CAR (
CarID INT NOT NULL PRIMARY KEY,
Make VARCHAR (30) NOT NULL,
Model VARCHAR (30) NOT NULL,
Type VARCHAR (30) NOT NULL,
YearModel INT NOT NULL,
Price VARCHAR (100) NOT NULL,
);
CREATE TABLE [TRANSACTION] (
tID INT NOT NULL PRIMARY KEY,
cID INT NOT NULL FOREIGN KEY REFERENCES CUSTOMER(CID),
CarID INT NOT NULL FOREIGN KEY REFERENCES CAR(CARID),
eID INT NOT NULL FOREIGN KEY REFERENCES EMPLOYEE(EID),
tDate DATE,
PickupDate DATE NOT NULL,
ReturnDate DATE NOT NULL
);
然后我不得不添加一个新列:
ALTER TABLE [TRANSACTION]
ADD Amount_Due int;
下面的代码给了我需要的结果:
SELECT Price*DATEDIFF(DAY,PickupDate, ReturnDate)
FROM [TRANSACTION], CAR
WHERE [TRANSACTION].CarID = CAR.CarID
但我不知道如何将所有数据插入到我的 Amount_Due 列中。
我尝试使用 INSERT INTO,但它告诉我在 Amount_Due 附近有语法错误。
INSERT INTO [TRANSACTION] Amount_Due
SELECT Price*DATEDIFF(DAY,PickupDate, ReturnDate)
FROM CAR, [TRANSACTION]
WHERE CAR.CarID = [TRANSACTION].CarID
我玩过 INSERT INTO 和 UPDATE,但我无法理解我做错了什么,或者我错过了什么。
我正在使用 SQL SMS 2018
感谢您的帮助。
【问题讨论】:
-
我建议您尽可能不要这样做。最好只保留一个信息来源并在需要时进行总结,而不是保留两份副本
-
仅供参考 SSMS 不是数据库,SSMS 的版本通常不相关。你感兴趣的是来自
select @@version的结果。
标签: sql sql-server tsql sql-insert