我使用SQL服务器并需要将记录从一个表插入到另一个空表中。我从第一个表中拉出来的是accnt,它有以下字段:code,invno,invdate,ven和amnt,以及导入。记录所要进入的表格是快速调用的,并且包含以下字段:日期,数字,名称,帐户,拆分和金额。我理解的一些字段只是直接复制,但我遇到的问题是,某些字段需要根据帐户中的值来填充与accnt不同的字段。 并且在accnt中有一个名为imported的字段,该字段为空或其中包含x。我只想导入导入字段为空的记录
我到目前为止的插入语句应该导入:日期,名称,帐户和金额,而不是取决于任何东西。但是num字段根据accno字段的值从accnt中的不同字段导入。标准是:
如果帐户< 7000然后num =代码 如果帐户> 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
我如何完成我想要做的事情?即使图片中的数据错误,表格看起来像这样:
稍后将使用更新查询填充类型和拆分字段。
答案 0 :(得分:2)
使用单个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