根据多个条件将记录从一个 table 中的特定列插入到另一个 table

inserting records from specific columns in one table to another table depending on multiple criteria

我正在使用 SQL 服务器,需要将记录从一个 table 插入另一个空的 table。我从中提取的第一个 table 称为 accnt,具有以下字段:code、invno、invdate、ven 和 amnt,并且已导入。记录将要到达的 table 称为 quick 并且具有以下字段:日期、数字、名称、帐户、拆分和金额。据我所知,有些字段只是直接复制的,但我遇到的麻烦是,根据帐户中的值,有些字段需要填充与 accnt 不同的字段。 accnt 中有一个名为 imported 的字段,该字段为空或有一个 x。我只想导入导入字段为空的记录

到目前为止,我的插入语句应该直接导入:日期、姓名、帐户和金额,而不依赖于任何内容。但是 num 字段根据 accno 字段的值从 accnt 中的不同字段导入。标准是:

如果账户 < 7000 那么 num = code 如果账户 > 7000 那么 num = invno

这是我尝试过的方法,但没有用

DELETE FROM quick
INSERT INTO quick (date, num, name, account, amount) 
if accnt.accno < '7000'
   then SELECT invdate, code, ven, accno, amnt from accnt
if accnt.accno > '7000'
   then SELECT invdate, invno, ven, accno, amnt from accnt

我如何完成我想做的事情? table 看起来像这样,即使图片中的数据是错误的:

稍后将使用更新查询填充类型和拆分字段。

尝试使用单个 SELECT 并使用 CASE 来区分这两种情况。

DELETE FROM quick
INSERT INTO quick (date, num, name, account, amount) 
SELECT invdate,
case when accnt.accno < '7000' then code else invno end
, ven, accno, amnt from accnt