sql 多表联合查询,按照某个结果进行排序

yacity 2007-05-26 09:06:05
表1 cangku
id 产品名称

表2 xiaoshou
id 产品id 数量 单价 总额 销售日期

表3 tuihuo
id 产品id 数量 单价 总额 退货日期


现在我要通过联合查询实现以下功能

产品名称 销售数量 销售总额 该产品最后一次销售日期 退货数量 退货总额 该产品最后一次退货日期


要求 按照最后一次销售日期进行排序,不管有没有销售记录,都要列出所有产品的名称.(我想知道某个产品的销售数量,总额 最后一次销售日期,退货数量,退货总额,最后退货日期)

请问这样的sql 语句怎么写?

这个问题是第三次升级了.谢谢前面几位大哥的指点.

...全文
1003 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yacity 2007-05-27
  • 打赏
  • 举报
回复

例如
select x.id,sum(tuihuo.zonger) as tuihuozonger from (select cangku.id,sum(xiaoshou.zonger)as sumzonger from cangku left join xiaoshou on cangku.id=xiaoshou.chanpinid group by cangku.id)as x left join tuihuo on x.id=tuihuo.chanpinid group by x.id

为什么 <%=rs("sumzonger")%> 的时候会提示 未找到项目 呢?
该如何 显示 sumzonger ?

lzhcxc 2007-05-27
  • 打赏
  • 举报
回复
销售总额 as sumzonger --取别名
yacity 2007-05-27
  • 打赏
  • 举报
回复
非常 感谢 Yang_(扬帆破浪) 本人愚钝,花了一天的时间才把你写的代码 改成真正可以运行的代码,但是问题又出来了,我要 显示

销售数量 销售总额 该产品最后一次销售日期

的时候调用<%=rs("sumzonger")%> (销售总额) 的时候 提示未找到该项目

请问我要显示 销售总额 的时候该 怎么写呢? 谢谢
Yang_ 2007-05-26
  • 打赏
  • 举报
回复
少了排序
+

order by
t.该产品最后一次销售日期
Yang_ 2007-05-26
  • 打赏
  • 举报
回复
select
t.产品名称,
t.销售数量,
t.销售总额,
t.该产品最后一次销售日期,
sum(c.数量) as 退货数量,
sum(c.总额) as 退货总额,
max(c.退货日期) as 该产品最后一次退货日期
from
(
select
a.id,
a.产品名称,
sum(b.数量) as 销售数量,
sum(b.总额) as 销售总额,
max(b.销售日期) as 该产品最后一次销售日期
from
cangku a
left join
xiaoshou b
on
a.id=b.产品id
group by
a.id,
a.产品名称
) as t
left join
tuihuo c
on
t.id=c.产品id
group by
t.产品名称,
t.销售数量,
t.销售总额,
t.该产品最后一次销售日期

lzhcxc 2007-05-26
  • 打赏
  • 举报
回复
select * from cangku
left join
(
select
产品id,sum(数量) as 销售数量,sum(总额) as 销售总额,max(销售日期) as 销售日期
from xiaoshou
group by 产品id
) as xiaoshou on cangku.产品id=xiaoshou.产品id
left join
(
select
产品id,sum(数量) as 退货数量,sum(总额) as 退货总额,max(退货日期) as 退货日期
from tuihuo
group by 产品id
) as tuihuo on cangku.产品id=tuihuo.产品id
yacity 2007-05-26
  • 打赏
  • 举报
回复
我是用到asp 里面的.

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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