实各位老大出手相救,求一SQL写法:业务员名,订单数,订单总金额

hong668 2003-11-14 11:34:09
三个表:
业务员
雇员ID,雇员名
1 张
2 李
订单
订单ID,雇员ID
1 1
2 2
订单明细
订单明细ID 订单ID,数量,单价 产品ID
1 1 10 10 1
2 1 15 15 2
3 2 20 10 1
3 2 30 15 2
我现在想得出这样的结果:
业务员名 订单总数 订单总金额
张 1 10*10+15*15
李 1 20*10+30*15
不知我说的够不够清楚,请各位老大救救我,我搞了好久了,谢谢。

...全文
65 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
hong668 2003-11-15
  • 打赏
  • 举报
回复
多谢所有回复的大哥邹兄能为我说话更是感激,现在问题已经在以上各位的帮忙下解决了,原因是我用数据库ACCESS做的测试.
马上结贴.
orcale 2003-11-15
  • 打赏
  • 举报
回复
select e.雇员名,(select count(*) from 订单 where 订单ID=e.订单ID) as 订单数量,
sum(e.total) as total from select c.*,d.数量*d.单价 as total from
(select a.雇员名,b.订单ID from 业务表 a,订单 b
where a.雇员ID=b.雇员ID) c,订单明细 d
where c.订单ID=d.订单ID )e group by e.total,e.雇员名,e.订单ID
zjcxc 元老 2003-11-15
  • 打赏
  • 举报
回复
to: victorycyz(中海,干活去,别在CSDN玩耍!)

解释一下
因为一般对于回贴,我是查看一下当前的贴子,连续打开几个认为自己可以回复的贴子,再逐个回复.
这样,在后面回复的贴子,可以人家已经有答案了,而因为没有刷新(CSDN慢),所以造成和上面的回复一致的情况.

hong668 2003-11-14
  • 打赏
  • 举报
回复
谢谢,一般一个小公司不会有相同的业务员名字,不过你想得比较周到。:)
txlicenhe 2003-11-14
  • 打赏
  • 举报
回复
此贴下午四点结,感谢上面几位大哥,大力,马可,,我个人水平有限不过觉得邹兄的方法要易理解

邹建的和我的差别好象不大啊。^_^  (大家的都差不多)

pengdali 2003-11-14
  • 打赏
  • 举报
回复
Distinct Count 不重复的输入值的数目

如果不要id:

select c.雇员名,count(distinct b.订单ID) 订单总数,sum(b.数量*b.单价) 订单总金额 from 订单 a,订单明细 b,业务员 c where a.订单ID=b.订单ID and a.雇员ID=c.雇员ID group by a.雇员ID,c.雇员名

但建议加上,如果有同名怎么办?
hong668 2003-11-14
  • 打赏
  • 举报
回复
此贴下午四点结,感谢上面几位大哥,大力,马可,,我个人水平有限不过觉得邹兄的方法要易理解
还有其它的方法请接着跟下去,我想这也是很多人要问的问题。
fallstone 2003-11-14
  • 打赏
  • 举报
回复
呵呵,吃了个饭回来看看很多回答了。恩,越来越完善了。
zjcxc 元老 2003-11-14
  • 打赏
  • 举报
回复
count(distinct a.订单ID)

distinct可以保证,订单数量的统计不会重复.
zjcxc 元老 2003-11-14
  • 打赏
  • 举报
回复
--太简单了吧?
select b.雇员名
,订单总数=count(distinct a.订单ID)
,订单总金额=sum(c.数量*c.单价)
from 订单 a
join 业务员 b on a.雇员ID=b.业务员
join 订单明细 c on a.订单ID=c.订单ID
group by b.雇员名
victorycyz 2003-11-14
  • 打赏
  • 举报
回复
select
雇员名 as 业务员名,
isnull(订单总数,0) as 订单总数,
isnull(订单总金额,0) as 订单总金额
from
(业务员 left join
(select 雇员ID,count(*) as 订单总数 from 订单 group by 雇员ID) tO on 业务员.雇员ID=tO.雇员ID) left join
(select 雇员ID,sum(数量*单价) as 订单总金额 from 订单,订单明细 where 订单.订单ID=订单明细.订单ID group by 雇员ID) tS on 业务员.雇员ID=tS.雇员ID
hong668 2003-11-14
  • 打赏
  • 举报
回复
大力哥哥,谢谢回贴,可是我还是看不懂count(distinct b.订单ID) 是什么意思。
txlicenhe 2003-11-14
  • 打赏
  • 举报
回复
Select c.雇员名,count(distinct b.订单ID),sum(a.数量*a.单价)
from 订单明细 a
join 订单 b on a.订单ID = b.订单ID
join 业务员 c on b.雇员ID = c.雇员ID
group by c.雇员名
txlicenhe 2003-11-14
  • 打赏
  • 举报
回复
Select c.雇员名,count(distinct b.订单ID),sum(a.数量*a.单价)
from 订单明细表 a
join 订单表 b on a.订单ID = b.订单ID
join 业务员表 c on b.雇员ID = c.雇员ID
group by c.雇员员
txlicenhe 2003-11-14
  • 打赏
  • 举报
回复
Select c.雇员名,count(distinct b.订单ID),sum(a..数量*a.单价)
from 订单明细表 a
join 订单表 b on a.订单ID = b.订单ID
join 业务员表 c on b.雇员ID = c.雇员ID
group by c.雇员员
pengdali 2003-11-14
  • 打赏
  • 举报
回复
select a.雇员ID,c.雇员名,count(distinct b.订单ID) 订单总数,sum(b.数量*b.单价) 订单总金额 from 订单 a,订单明细 b,业务员 c where a.订单ID=b.订单ID and a.雇员ID=c.雇员ID group by a.雇员ID,c.雇员名
hong668 2003-11-14
  • 打赏
  • 举报
回复
在线等,解决后马上结分。
zjcxc 元老 2003-11-14
  • 打赏
  • 举报
回复
to: hong668(心情不错)

你难道不是SQL数据库?
pengdali 2003-11-14
  • 打赏
  • 举报
回复
你的代码
hong668 2003-11-14
  • 打赏
  • 举报
回复
各位老大,以上的都调试过:出错的信息是:在count(distinct ..)中有错误。
加载更多回复(3)
小学生夏季防溺水主题班会PPT,共25页; PPT模板采用了卡通风格设计。PPT封面使用了夏天的泳池,和正在游泳的小学生PPT背景图片。中间使用蓝色字体填写小学生夏季防溺水主题班会PPT标题。 PowerPoint模板内容页,使用了多张夏季防溺水PPT插图,搭配主题班会文字排版。 小学生夏季防溺水主题班会PPT内容简介: 随着夏季来临,中小学生游泳溺水事故进入高发期。教育局发出紧急通知,明确要求中小学生不准私自下水游泳;不到无安全保障的水域游泳。 夏季防溺水主题班会PPT目录: 一、远离野外危险水域 二、游泳注意事项 三、同伴落水不要错误营救 四、同伴落水如何正确施救 五、不慎落水如何自救 一、远离野外危险水域 危险水域:一般发生溺水的地点在:水库、水坑、河流、溪边,游泳池…… 为什么游泳池也会发生溺水呢? “在人们惯性思维里,都觉得在河里或水库里游泳比较危险。其从最近几年的经验看,游泳池里出意外的案例也特别多而且有增多的趋势。” 你知道吗?人在溺水后,2分钟后将失去意识;4-6分钟身体将遭受不可避免的伤害如果在野外落水,很难被及时营救,从而溺水死亡。 所以,不管是野外的小溪河流水库,还是游泳池。都可能会发生溺水危险,同学们不仅要远离野外危险水域,在正规游泳池,也要牢记游泳安全。 二、游泳注意事项 选择正规、安全的游泳场所,必须在成人的陪同下游泳。 游泳前,做好准备活动,下水前应先热身,但不宜太剧烈。不要贸然跳水和潜泳,不要在水下憋气。 三、同伴落水不要错误营救 如果你看到小伙伴落水了,首先你会怎么做呢? 不能手拉手施救,落水者力大无比,稍不留神就会被溺水者拉下水,造成连环溺水的悲剧。 不能入水施救,小学生没有足够的能力入水救溺水者,千万不能下水救人,以免发生更多的悲剧。 四、同伴落水如何正确施救 碰到有人溺水,第一时间要大声呼叫,派出一人去寻求成人的帮助(如果有多个同伴在一起的话) 高年级同学和在有条件的情况下,除了呼叫大人。 还可以这样做:寻找竹竿、树枝等,俯身趴下来,慢慢将溺水者拉上岸,在周边寻找漂浮物给落水者 当周围没有漂浮物或者竹竿时,可以用衣服打绳结抛向溺水者。 五、不慎落水如何自救 如果你不习水性,应迅速把头向后仰,口向上,尽量使口鼻露出水面,不能将手上举或挣扎,以免使身体下沉。 及时甩掉鞋子和口袋里的重物,但不要脱掉衣服,因为它会产生一定的浮力,对你有很大帮助。 假如周围有木板,应抓住,借用木板的浮力使自己的身体尽量往上浮。 如果有人跳水相救,千万不可死死抱住救助者不放,而应尽量放松,配合救助者把你带到岸边。 关键词:夏季防溺水PPT下载,小学生夏季防溺水主题班会PPT免费下载,.PPTX格式;

34,594

社区成员

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

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