我有一个名为salesinvoiceitems的表,其中包含
字段一个平衡表,字段为
在余额表中,我有包含发票编号的所有行。我想从salesinvoiceitems表更新金额。金额需要按如下方式计算:
来自salesinvoicetable的一张发票的所有行的(OF RATE X QTY)。
我试过这个但没有工作:
INSERT INTO balancetable (ledgerId,invoiceNumber,date,company,triggerredby)
SELECT buyerId,invoiceNumber,invoiceDate,company,"salesinvoices" as triggerredby
FROM salesinvoices
请说清楚。
答案 0 :(得分:1)
目前还不清楚为什么要在更新余额记录时尝试插入。或者你的意思是MERGE
?
如果您确实要更新余额表,可以使用子选项解决它,如下所示:
UPDATE BALANCE B
SET AMOUNT = (SELECT ROUND(SUM(QTY * RATE),2)
FROM SALESINVOICEITEMS S
WHERE S.INVOICENUMBER = B.INVOICENUMBER)
可以在insert语句中使用相同的逻辑。
如果您想合并余额表上的数据,这意味着您必须根据行的存在进行插入或更新,请尝试检查此链接:
答案 1 :(得分:0)
如果你不想合并,这可能不是最好的方法,但它应该有效:
`//Connect To MySQL
mysql_connect("SERVER","USER","PASSWORD");
mysql_select_db("productphotos_userlogins");
//Info Gathering
$infogatherp1 = mysql_query("SELECT * FROM members WHERE name='$myusername'");
while($infogatherp2 = mysql_fetch_array($infogatherp1)) {
$invoicenumber = $infogatherp2['invoiceNumber'];
$ledgerid = $infogatherp2['ledgerId'];
$amount = $infogatherp2['amount'];
}`
然后你可以用变量更新另一个表
注意:方括号中的位([]
)是表中要从中获取数据的列名。
希望这会有所帮助并祝你好运!