linghb99 2015-08-11 23:29 采纳率: 100%
浏览 1576
已采纳

这个sql语句如何写??

有3个表格,A、B、C

A表结构 (订单表)
id

Workfee (工时费)

B表结构 (订单产品表,一个订单有多个产品)
id
Aid (A表id的外键)
chanpinid (仓库产品的id)
shuliang (数量)

备注:A表与B表外键相连的。

C表格 (仓库表,B表的订单产品,都来自仓库!)
id

danjia (单价)

现在想查A的订单记录数:工时费 + 产品数量*单价 > 100块的。如何写sql??

我写的不成功。如下:

select distinct(A.id) from ((A JOIN B ON A.id=B.Aid ) inner join C on B.chanpinid=C.id GROUP BY Ai.d HAVING SUM(C.danjia*B.shuliang+A.workfee) >100

就好比:订购一个面包,有手工费,然后还有原料:面粉3克、盐巴1克,糖2克等,面粉等原材料价格保存在仓库表中的。

现在想知道: 手工费+面粉3克*价格 +盐巴1克*价格 +糖2克*价格 >100的面包,有几个!!

  • 写回答

5条回答 默认 最新

  • iherolp 2015-08-12 01:20
    关注

    标准答案:

    
    create table Table_A (
    id int,
    Workfee int
    )
    
    create table Table_B (
    id int,
    Aid int,
    chanpinid int ,
    shuliang int
    )
    
    create table Table_C (
    id int,
    danjia int
    );
    
    insert into Table_A values(100,30);
    insert into Table_A values(200,20);
    
    
    
    insert into Table_B values(1,100,10,10);
    insert into Table_B values(2,100,11,5);
    insert into Table_B values(3,100,12,5);
    insert into Table_B values(4,200,10,2);
    insert into Table_B values(5,200,11,2);
    
    
    insert into Table_C values(10,5);
    insert into Table_C values(11,1);
    insert into Table_C values(12,20);
    
    
    SQL:
    
    select a.id,SUM(Workfee + d.shangpinjiage ) from Table_A a,
        (select Aid,SUM(c.danjia * b.shuliang) shangpinjiage
           from Table_B b,Table_C c 
          where b.chanpinid = c.id and b.chanpinid =c.id
          group by Aid)  d
     where a.id = d.Aid
     group by a.id
    having SUM(Workfee + d.shangpinjiage ) > 100
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?