簡體   English   中英

SQL query INSERT SELECT COUNT 從一個表逐行到另一個表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM