kongkpc 2014-12-18 12:40 采纳率: 50%
浏览 1563

有关sql查询重复使用的问题

看一下这样的语句行不行。

SELECT 
IF(loan.custType = 0,cu.name,ecu.name) AS 借款人,
ROUND(loan.appAmount / 10000,2) AS 贷款本金(万元), 
loan.rate AS 实际利率, 
ROUND(CASE loan.rateType 
WHEN 1 THEN loan.rate * 12 
WHEN 2 THEN loan.rate * 12 * 30 
ELSE loan.rate END,2) AS 年化利率, 
amo.rat AS 当月实收利息, 
(SELECT com.commission 
FROM fc_commission AS com 
WHERE com.isenabled = 1 
ORDER BY com.id DESC LIMIT 1) AS 提成率, 
当月实收利息 * 提成率 / 100 AS 当月应计提成
FROM fc_amountrecords AS amo 
LEFT JOIN fc_loancontract AS loan  ON amo.contractId = loan.id 
LEFT JOIN crm_customerinfo AS cu ON cu.id = loan.customerId 
LEFT JOIN crm_ecustomer AS ecu ON ecu.id = loan.customerId;

要达到“当月应计提成”的效果需要怎样做?

  • 写回答

1条回答 默认 最新

  • save4me 2014-12-18 13:52
    关注

    你这不行。不知道你用的是什么数据库,MS SQL SERVER和MY SQLSELECT里不能用IF,需要用CASE。另外,语句里除了在ORDER BY能用SELECT里的别名外,不能直接在其他地方用别名引用。你可以把下面的部分提取出来,剩余的部分作用From部分,把提取出来的用作SELECT,当然你可以加上新的From的其他字段。
    (SELECT com.commission
    FROM fc_commission AS com
    WHERE com.isenabled = 1
    ORDER BY com.id DESC LIMIT 1) AS 提成率,
    当月实收利息 * 提成率 / 100 AS 当月应计提成

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)