请教 3表 数据库查询

xiehuangda 2009-11-12 03:19:31
表1
ID 商品名称
1 绿茶
2 白酒
3 可乐
4 苹果

表2
对应表1ID 采购日期 采购金额
1 2009-1-1 3
1 2009-1-2 1
4 2009-3-1 2
3 2009-3-3 3
3 2009-5-2 6
4 2009-8-3 4

表3
对应表1ID 销售日期 销售金额
3 2009-5-5 2
1 2009-6-1 1
3 2009-9-5 2

说明:表1 是商品名称表。 表2 是采购表。 表3 是销售表
请教,有什么方法,可以做到用户输入日期查询。就得到下面的结果呢?
现需要 做一个统计表 结果如下:

用户输入查询日期: 2009年2月1日 至 2009年9月1日

表1商品名称 表2采购金额 表3销售金额 盈利
绿茶 0 1 1
可乐 9 2 -7
苹果 6 0 -6
盈利合计:-12
...全文
78 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiehuangda 2009-11-12
  • 打赏
  • 举报
回复
原因找到 2个
1.采购日期 between '2009年2月1日'
数据库设置本身 是日期类型。所以。之需这样设置:
采购日期-#2009-2-1#>=0
销售日期-#2009-2-1#>=0
2.sum(采购金额),sum(销售金额)。
分别为他们 AS
把sum(采购金额)AS cgje
把sum(销售金额)AS xsje

特别感谢 ACMAIN_CHM
希望 有用到多表查询的朋友,有参考价值。
可以结贴了。
xiehuangda 2009-11-12
  • 打赏
  • 举报
回复
显示 结果 不正确

表1商品名称 表2采购金额 表3销售金额 盈利
绿茶 1 0 1
可乐 11 0 -11
苹果 6 0 -6
盈利合计:-18
表2中 的 采购金额,除了显示本身外,还把销售金额 给加进入了。 不正确。
表3中 的 销售金额,显示全部是0 不正确。
请教,怎么样才能做到正确。
xiehuangda 2009-11-12
  • 打赏
  • 举报
回复
测试后,发现这个地方:
select 商品名称,sum(采购金额),sum(销售金额),sum(销售金额)-sum(采购金额) as 盈利
sum(采购金额) 没有 AS caigou
sum(销售金额)没有 AS xiaoshou
给它们都加上 AS 后 分别重新命名,却发现 采购金额 除了显示本身外,还 显示出 销售金额来,
则,销售金额 全部是 0
不知为什么?
ACMAIN_CHM 2009-11-12
  • 打赏
  • 举报
回复
ACMAIN_CHM 2009-11-12
  • 打赏
  • 举报
回复
select 商品名称,sum(采购金额),sum(销售金额),sum(销售金额)-sum(采购金额) as 盈利
from (
select 表1.商品名称,表2.采购金额,0 as 销售金额
from 表1 inner join 表2 on 表1.ID=表2.对应表1ID
where 采购日期 between '2009年2月1日' and '2009年9月1日'
union all
select 表1.商品名称,0 as 采购金额,表3.销售金额
from 表1 inner join 表3 on 表1.ID=表3.对应表1ID
where 销售日期 between '2009年2月1日' and '2009年9月1日'
) t
group by 商品名称

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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