Php 从一个查询插入多个表
我正在从查询中检索某些数据的Php 从一个查询插入多个表,php,sql,postgresql,postgresql-8.4,Php,Sql,Postgresql,Postgresql 8.4,我正在从查询中检索某些数据的总和。和可以有负值和正值。我想将正值插入一个表,将负值插入另一个表 select查询的结果集如下所示 total | userid ----------------------- 4750.00 | 11 1339.00 | 3607 -681.81 | 3600 我计划将select查询中的详细信息直接插入表中,insert into table(amount,user)选择SUM(..)作为总计,userid
总和。和可以有负值和正值。我想将正值插入一个表,将负值插入另一个表
select查询的结果集如下所示
total | userid
-----------------------
4750.00 | 11
1339.00 | 3607
-681.81 | 3600
我计划将select查询中的详细信息直接插入表中,insert into table(amount,user)选择SUM(..)作为总计,userid from…
。但我无法在一个查询中找出如何实现这一点
我使用的是PostgreSQL 8.4.17
在两个独立的插入中使用where
语句:
INSERT into positives (amount,user)
SELECT SUM(..) AS total, userid
FROM...
having sum(..) > 0;
INSERT into negatives (amount,user)
SELECT SUM(..) AS total, userid
FROM...
having sum(..) < 0;
插入正数(金额、用户)
选择SUM(..)作为总计,userid
从…起
总和(..)大于0;
插入底片(数量、用户)
选择SUM(..)作为总计,userid
从…起
总和(..)小于0;
有什么原因不能在两个查询中完成吗?使用两个查询没有问题。但我仍然不知道如何在INSERT
和SELECT
query之间添加if/else
语句。求和中的等式是复杂的sum((a*b)/100)-(c/100))
。所以计算两次可能有点重。。。对吧?@NandakumarV。这其实没那么复杂。更大的性能冲击是读取表格两次。如果查询确实需要相当长的运行时间,那么将完整的结果放在一个临时表中,并从中插入。