根据多个条件将记录从一个 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
我正在使用 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