Select 语句难题

来源:百度知道 编辑:UC知道 时间:2024/06/15 18:50:45
有一个订单主表,记录了订单号码和客户名称等,还有一个订单明细表,记录了这个订单号下的明细,如产品名称,单价,数量,金额等,我怎样用一个Select(或嵌套)语句得到这样的信息:

订单号码,客户名称,订单总金额(=此订单号明细的金额的总和)
P001 张三 2100
P002 李四 8700

比如我想这样写:Select 订单号码,客户名称,(Select Sum(金额)AS 订单总金额 Where 订单明细.订单号码 = 订单主表.订单号码 From 订单明细) From 订单主表。

这个语句怎样写才成立?
主表名:【订单主表】 字段有2个:订单号码,客户名称
明细表名:【订单明细】字段有5个:订单号码,产品名称,数量,单价,金额
关系:订单主表.订单号码=订单明细.订单号码

PS:同一个订单号只有一个客户名称,其实我的问题不复杂,就是不知道怎样写才能运行。

我的目的是不想在订单主表里有“订单总金额”这个字段,改为根据订单明细自动统计,这样我就不用为了维护订单总金额而费脑筋了,因为万一数据库访问出错,明细保存进去了而订单总金额没有得到更新就会闹笑话,动态统计就不会有这问题,当然,我可以在订单主表里设一个“订单总金额”字段,然后写一个触发器来自动维护这个字段的值,但我想知道是不是Selcel也有办法实现。

你把表结构写来就行了。
说了半天,都不知道你的表是什么结构,什么名称!

你这两个表没有关联的字段呀!

最起码也要有一个关联的字段呀!如:订单编号或是其它的字段!也就是说这两个表最少要有一个相同的字段来做关联!

另外,你这里是不是还要按订单号分组呢,比如:

现在P001这个订单有两个用户订货,又将怎么显示呢

是:P001 张三 2100
P001 李四 3000

还是怎么显示呢?

我不知道我理解的对不对,我先写一条语句你试试看吧。
你用的是SQL 数据库吗?

select
订单主表.订单号码,订单主表.客户名称,sum(订单明细.金额)
from 订单主表,订单明细
where 订单主表.订单号码=订单明细.订单号码
group by 订单主表.订单号码,订单主表.客户名称

如果你的表结构正确的话,这条语句应该没问题!

Select
订单号码,
客户名称,
(Select Sum(金额)AS 订单总金额 From 订单明细 Where 订单明细.订单号码 = 订单主表.订单号码 )
From 订单主表

PS:语句嵌套的话最好分行写

select 订单号码,客户名称,sum(金额) 订单总金额 from 主表,详表 where 主表.订单号 = 详表.订单号 group by 订单号码,客户名称