mysql - MySQL 5.7 创建带有 int 输入语法错误的函数
问题描述
尝试在 MySQL 5.7 中创建一个函数,该函数将返回一年的总销售额,格式为 $,给定年份的两位小数作为整数输入。
表列 InvoiceID、deptid、salsamt、salesdate
DELIMITER $$
CREATE FUNCTION `tot_sale` (Year INT)
RETURNS VARCHAR2
BEGIN
Select concat('$', format(salesamt), 2)
from sales
where YEAR(salesdate) = Year;
RETURN 1;
END$$
DELIMITER ;
解决方案
2
必须是 的第二个参数FORMAT()
,而不是 的参数CONCAT()
。
如果一个函数使用SELECT
,它必须将结果存储在一个变量中。只允许过程直接返回结果集。
您需要使用SUM(salesamt)
来获取当年的总销售额。
DELIMITER $$
CREATE FUNCTION `tot_sale` (Year INT)
RETURNS VARCHAR(255)
BEGIN
DECLARE total VARCHAR(255);
Select concat('$', format(SUM(salesamt), 2))
INTO total
from sales
where YEAR(salesdate) = Year;
RETURN @total;
END$$
DELIMITER ;
推荐阅读
- angular - Angular 6 mat-sidenav 切换菜单不起作用
- ios - 当 AVSpeechUtterance 使用 Alex 和属性字符串时,AVSpeechSynthesizer.speak 崩溃
- eclipse - 在 Eclipse 上设置 WxWidgets 项目
- angular - 元素定位 - 参考更高的组件
- database - 无法从数据网格连接到 postgres db
- python - postgresql django 中的近似行数
- c# - 使用 Web Api .NET Core 的简单 POST
- angular - 选项 405(不允许的方法) slimphp
- numbers - 更改 if 语句中的值
- java - Spring Boot App 注册 RequestContextListener 失败