有沒有人用水晶報表做過以下報表?難題!

catthunder 2004-10-14 03:55:19
有三個table:
A是料品的table
B是料品在某個倉庫的目前庫存量的table
C是料品在某個倉庫的進出交易的table
它們之間的關系是一對多的關系。A:B => 1:n B:C => 1:n
現在要寫一個這樣的報表,把B中某個倉庫的數量減去C中按倉庫匯總交易的數量,并按A中的某個分類再分組。
但是因為B對C是一對多,所以如果用database expert選出三個table,當匯總B中的目前庫存量時,會多重復計算了。
A料品 B目前庫存量 C庫存進出
1 100 20
1 100 50
---------------------------
sum: 200 70
這個例子中,B的目前庫存量本來應該是一百,因為有兩筆進出數據,把它重復計算了。
如何解決這個問題?(只用crystal report,不用其它開發工具來做。)
...全文
158 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
quanke1981 2004-10-29
  • 打赏
  • 举报
回复
用Fomular啊,值等于按A分组的B的平均值
白发程序猿 2004-10-29
  • 打赏
  • 举报
回复
select a.cate,sum(e.onhandyu)as onhandyus from a inner join
(select b.item,b.locn,(b.onhand-d.qtys) as onhandyu from b inner join
(select item,locn,sum(qty) as qtys from c group by item,locn
) d on b.item=d.item and and b.locn=d.locn
) e on a.item=e.item
group by a.cate
在数据库专家中通过添加指令的方法用这个SQL语句作为数据源。
beifushengzq 2004-10-26
  • 打赏
  • 举报
回复
最好有测试数据,你光给的表结构,很抽象啊
dxjhq 2004-10-23
  • 打赏
  • 举报
回复
可不可以用存储过程写啊?
catthunder 2004-10-16
  • 打赏
  • 举报
回复
A ITEM VARCHAR(20), //料品
CATE VARCHAR(5), //分類

B ITEM VARCHAR(20), //料品
LOCN VARCHAR(15) //庫位
ONHAND DECIMAL(12,4) //目前庫存量

C TIEM VARCHAR(20), //料品
LOCN VARCHAR(15), //庫位
QTY Decimal(10,4) //進出數量
INOUTDT DATETIME //進出日期

現在要分別匯總 C的QTY,并sum(ONHAND - sum(QTY)).用水晶報表時,如果C有多筆,則B也有多筆資料帶出來。然后匯總時會重復。
beifushengzq 2004-10-15
  • 打赏
  • 举报
回复
能否给出表结构和测试数据,我觉得可以解决

6,108

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据库报表
社区管理员
  • 数据库报表社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧