簡體   English   中英

根據多個條件,將記錄從一個表中的特定列插入到另一表中

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

我正在使用SQL Server,需要將記錄從一個表插入另一個空表。 我從中提取的第一個表稱為accnt,並具有以下字段:code,invno,invdate,ven和amnt,以及導入的。 記錄將轉到的表稱為快速表,具有以下字段:日期,數字,名稱,科目,拆分和金額。 我理解有些字段是直接復制的,但是我遇到的麻煩是,根據帳戶中的值,某些字段需要使用accnt以外的其他字段填充。 accnt中有一個名為import的字段,該字段為空或帶有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

我如何完成我想做的事情? 即使圖片中的數據有誤,該表也會如下所示:

在此處輸入圖片說明

type和split字段稍后將使用更新查詢進行填充。

使用單個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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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