sql语句

SELECT DISTINCT a.姓名,round(回款额,2) AS 字段 FROM
(SELECT 姓氏||名字 as 姓名,sum(单价*数量*(1-折扣)) AS 销售额
FROM S雇员,s订单明细,"S订单"
WHERE S雇员.雇员ID="S订单"."雇员ID" AND "S订单"."订单ID"="S订单明细"."订单ID"
GROUP  by "姓氏"||"姓名"
ORDER BY SUM("单价"*数量*(1-"折扣"))DESC) a ,
(SELECT "姓氏"||"名字" AS "姓名",sum("单价"*"数量"*(1-"折扣"))AS 回款额
FROM "S雇员","S订单明细","S订单"
WHERE "S雇员"."雇员ID"="S订单"."雇员ID"and "S订单"."订单ID"="S订单明细"."订单ID" AND "S订单"."是否已付"='是'
GROUP BY "姓氏"||"姓名"
ORDER BY SUM("单价"*"数量"*(1-"折扣")) DESC) AS b,"回款率"
WHERE a."姓名"=b."姓名" AND a."姓名"="雇员姓名"
ORDER BY 字段 DESC

-----------------------

上述是图表联动TOP10的回款金额与销售金额sql语句。有2个部分不明白,一是红色部分代表的是取回款金额的前10条数据吗?round不是四舍五入函数吗?二是一定要在 b,的后面加上“回款率”这又是为什么?  求助大佬解答

aafighting 发布于 2020-7-2 16:33
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
1
zsh331Lv8专家互助
发布于2020-7-2 16:42


SELECT DISTINCT a.姓名,round(回款额,2) AS 字段  -- 四舍五入,取二位小数
FROM
  (SELECT 姓氏||名字 AS 姓名,sum(单价*数量*(1-折扣)) AS 销售额
   FROM S雇员,
        s订单明细,
        "S订单"
   WHERE S雇员.雇员ID="S订单"."雇员ID"
     AND "S订单"."订单ID"="S订单明细"."订单ID"
   GROUP BY "姓氏"||"姓名"
   ORDER BY SUM("单价"*数量*(1-"折扣"))DESC) a,
  (SELECT "姓氏"||"名字" AS "姓名",
          sum("单价"*"数量"*(1-"折扣"))AS 回款额
   FROM "S雇员",
        "S订单明细",
        "S订单"
   WHERE "S雇员"."雇员ID"="S订单"."雇员ID"
     AND "S订单"."订单ID"="S订单明细"."订单ID"
     AND "S订单"."是否已付"='是'
   GROUP BY "姓氏"||"姓名"
   ORDER BY SUM("单价"*"数量"*(1-"折扣")) DESC) b --,
    --  "回款率" -- 多余的内容
WHERE a."姓名"=b."姓名"
  AND a."姓名"="雇员姓名"
ORDER BY 字段 DESC


  • aafighting aafighting(提问者) 回款率不是多余的,去掉就报错near \"WHERE\": syntax error,而且回款率是在FRDEMO里面是一张表,难懂的是看不到它怎么就给筛选出来了前10条数据,子查询都是25条数据
    2020-07-02 16:51 
  • zsh331 zsh331 回复 aafighting(提问者) 那就保留,相当于3张表的做笛卡尔积。
    2020-07-02 16:54 
最佳回答
0
就TM你叫夏洛啊Lv6中级互助
发布于2020-7-2 16:39

round函数 是保留小数位函数,自动四舍五入,round(xx,2)代表xx数需要保留2位小数。后面的回款率应该是写错了,order by 直接可以加上别名 ,所以order by 回款额 就可以。

最佳回答
0
誓言无悔Lv6初级互助
发布于2020-7-2 16:40

round(回款额,2)  意思是回款额保留2位小数

ORDER BY SUM("单价"*"数量"*(1-"折扣")) DESC) AS b,"回款率"    是定义b为回款率

最佳回答
0
卫九星Lv4初级互助
发布于2020-7-2 16:44

round是保留两位小数

回款率 是会报错的 你sql 不报错?

  • aafighting aafighting(提问者) 不加回款率就报错。
    2020-07-02 16:46 
  • 卫九星 卫九星 回复 aafighting(提问者) 你把 “”,“回款率”“” 删掉 报错??
    2020-07-02 16:49 
  • aafighting aafighting(提问者) 回复 卫九星 我确定, near \"WHERE\": syntax error
    2020-07-02 16:52 
  • 5关注人数
  • 544浏览人数
  • 最后回答于:2020-7-2 16:44
    请选择关闭问题的原因
    确定 取消
    返回顶部