[英]SQL query INSERT SELECT COUNT from one table to another row by row
我無法找到正確的 SQL 查詢。 正如您在圖片中看到的,我有兩個表(“Table_1”和“VEHICULES”列)和(“Table_2”和“IMMATRICULATION”和“NOMBRE”列)。 在 Table_2 中,我想在列('Nombre')中插入來自 Table_1 的 VEHICULE(CarA,CarB 和 CarC)的計數值,這些值與圖片中的這些值在同一行中。
我嘗試了下面的查詢,但它被添加了一個值,而不是將它放在 CarA、CarB 的同一行中......
INSERT INTO Table_2 (NOMBRE)
VALUES ((SELECT COUNT(*) FROM Table_1 WHERE VEHICULES = 'CarA'),
(SELECT COUNT(*) FROM Table_1 WHERE VEHICULES = 'CarB'),
(SELECT COUNT(*) FROM Table_1 WHERE VEHICULES = 'CarC')
);
首先生成 select 查詢,返回要插入到新表中的值,然后在開頭添加 INSERT INTO。 group by 子句也是您所缺少的。
這是一個例子
INSERT INTO Table_2 (Name, Cnt)
select VEHICULES, count(*)
from Table_1
group by VEHICULES
你似乎想要update
,而不是insert
:
update table_2 t2 join
(select vehicules, count(*) as cnt
from table_1
group by vehicules
) t1
on t2.immatriculation = t1.vehicules
set nombre = t1.cnt;
您顯然需要update
,而不是insert
,如果您使用的是MSSQL Server (這是您收到的錯誤文本所建議的),則使用這樣的語句:
WITH t AS
(
SELECT vehicules, COUNT(*) AS cnt
FROM table_1
GROUP BY vehicules
)
UPDATE table_2
SET nombre = cnt
FROM t
WHERE immatriculation = vehicules
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.