将多个值添加到 table

Adding multiple values to a table

我需要向 table 添加多个值,这些值取自其他 table 或使用其他 table 计算得出。我正在使用如下所示的代码。请告诉我们如何计算从其他 table 获取的值。我需要从 table transac(tid,sciptname,accnum,transactype,Quantity,date) 插入到 table sales(scriptname,accnum,sharesbought,sharessold,remshares)。根据transac的类型我需要判断是sharebought还是sharesold,remainingshare是sharebought-sharesold;

我正在使用 .Net 来做这个,请告诉我我使用的代码是否正确。

    SqlConnection Con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
                Con.Open();
                string insertsale = "INSERT INTO sales s (accnum, scriptname, shares_bought,sharessold,rem_shares) select case when t.transactype == 'sell' then s.accnum = t.accnum, s.scriptname = t.scriptname. s.shares_bought = 0,s.shares_sold=t.quanity, (s.shares_bought-s.shares_sold) as s.rem_shares 
else
 s.accnum = t.accnum, s.scriptname = t.scriptname. s.shares_bought = t.quanity,s.shares_sold=0, (s.shares_bought-s.shares_sold) as s.rem_shares from transac t";
                SqlCommand cmd = new SqlCommand(insertsale, Con);
                cmd.ExecuteNonQuery();
                Con.Close();

您发布的 INSERT 声明是错误和奇怪的。您可以在单个 SQL 查询中执行此操作,如下所示。如果需要任何更改,您可以按照该行相应地修改给定的查询。

INSERT INTO sales(accnum, scriptname, shares_bought,sharessold,rem_shares) 
select accnum, scriptname,
case when transactype = 'sell' then 0 else quanity end as shares_bought, 
case when transactype <> 'sell' then quanity else 0 end as sharessold,
case when transactype = 'sell' then (0 - quanity) else (quanity - 0) end as rem_shares
from transac;