受不了了,还是 SQL问题 --By烂泥(16分)

  • 主题发起人 主题发起人 烂泥
  • 开始时间 开始时间

烂泥

Unregistered / Unconfirmed
GUEST, unregistred user!
又来了,。
table1的字段和数据 演示
name lb other
AAA 3 09
BBB 2 08

现有一个数,分配。如有100,则许如下结果
name lb other 分配
AAA 3 09 60 《---100*3/(3+2)
BBB 2 08 40

 

加在计算字段里面
 
60 =100*3/(3+2) 100*3/(3+2)何来?
 
在打开表后,就得出 3+2 的结果 5 , 然后根据这个数值,再加上 100(也许是
300)在 OnCalc 里计算
 
SELECT TABLE1.NAME, TABLE1.LB, TABLE1.OTHER, 100 * T2.BL AS 分配

FROM TABLE1,
( SELECT NAME, SUM(LB)/LB BL FROM TABLE1
GROUP BY NAME ) T2
WHERE TABLE1.NAME = T2.NAME

 
SELECT 100*lb/(select sum(lb) from table1) FROM table1
 
单表操作只要:
update table1 set 分配 =100*bl/sum(bl)
 
Use two query,one like this:select sum(lb) total from table1,
the other :select * , 100*qty/:total from table1.
Or 得到total 后在 OnCalc 里计算。
 
简化了问题想得些提示,<br>
我试了计算字段,有些问题。我把问题贴全些。<br>
我想通过两个表得出统计结果。table1 table2<br>
table2<br>
日期 lb cx ch money<br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; <font color="#FF0000"> 3 3 3001</font>
100<br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 3 3002 200<br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 1 1001 300<br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 1 1002 500<br>
table1<br>
日期 name lb cx ch sjcc <br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AAA <font
color="#FF8000">3&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 3001</font> 3 <br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BBB&amp;nbsp; <font
color="#FF8000">3&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 3001</font> 2<br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CCC 3
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 3002 2<br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDD 4
&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 1001 5 <br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AAA 4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 1002 5<br>
table1 和table2通过日期,lb ,cx ,ch 关联。<br>
------------------------------- <br>
如table1中的前两条记录 <br>
日期 name lb cx ch sjcc <br>
AAA 3 3 3001 3 <br>
BBB 3 3 3001 2<br>
和 table2的第一条记录对应<br>
日期 lb cx ch money<br>
3 3 3001 100<br>
则table2.money按table1中的sjcc分配。<br>
---------<br>
如 table1中只有一条记录和table2的记录对应则无需分配money<br>
<br>
如上则所需结果如下;<br>
日期 name lb cx ch sjcc money<br>
AAA 3 3 3001 3 60<br>
AAA 4 1 1002 5 500<br>
BBB 3 3 3001 2 40<br>
CCC 3 3 3002 2 200<br>
DDD 4 1 1001 5 300<br>
 
简化了问题想得些提示,
我试了计算字段,有些问题。我把问题贴全些。
我想通过两个表得出统计结果。table1 table2
table2
日期 lb cx ch money
3 3 3001 100
3 3 3002 200
4 1 1001 300
4 1 1002 500
table1
日期 name lb cx ch sjcc
AAA 3 3 3001 3
BBB 3 3 3001 2
CCC 3 3 3002 2
DDD 4 1 1001 5
AAA 4 1 1002 5
table1 和table2通过日期,lb ,cx ,ch 关联。
-------------------------------
如table1中的前两条记录
日期 name lb cx ch sjcc
AAA 3 3 3001 3
BBB 3 3 3001 2
和 table2的第一条记录对应
日期 lb cx ch money
3 3 3001 100
则table2.money按table1中的sjcc分配。
---------
如 table1中只有一条记录和table2的记录对应则无需分配money

如上则所需结果如下;
日期 name lb cx ch sjcc money
AAA 3 3 3001 3 60
AAA 4 1 1002 5 500
BBB 3 3 3001 2 40
CCC 3 3 3002 2 200
DDD 4 1 1001 5 300
 
最后的办法就是我没有用SQL语句.
 
多人接受答案了。
 
后退
顶部