Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql where子句中的SQl if语句_Mysql_Sql_Where - Fatal编程技术网

Mysql where子句中的SQl if语句

Mysql where子句中的SQl if语句,mysql,sql,where,Mysql,Sql,Where,如何在我的陈述中添加底线 SELECT AgentID, PaymentAmount FROM Table A WHERE DATEOFPAYMENT GROUP BY CollectorNumber ORDER BY CollectorNumber, LastName, DateofPayment, PaymentAmount 若付款日期=昨天,则付款金额为“前一天” 或 若付款日期=当前月,则付款金额为“MTD” 或 若付款日期=当前年,则付款金额为“本年至今” 我们可以研

如何在我的陈述中添加底线

SELECT
AgentID,
PaymentAmount
FROM Table A

WHERE 
DATEOFPAYMENT 

GROUP BY 
CollectorNumber

ORDER BY 
CollectorNumber,
LastName,
DateofPayment,
PaymentAmount

若付款日期=昨天,则付款金额为“前一天”

若付款日期=当前月,则付款金额为“MTD”

若付款日期=当前年,则付款金额为“本年至今”

我们可以研究


这是几乎完成的伪代码,所以请修复语法。但是案例陈述是这样的。

我不明白你想把它们放在哪里。您可以使用
CASE
而不是
IF
,但是如何使用它取决于您在做什么。请看CASE语句。我想那会对你有帮助。在你的
WHERE
中用
CASE
语句替换
DATEOFPAYMENT
。@GoatCO-我知道,只要引导他
就行了,否则
只能发生一次,它应该在最后一次
WHEN..THEN
之后<代码>AS
也不属于那里。
SELECT AgentID, PaymentAmount FROM Table A

WHERE CASE DATEOFPAYMENT 
 WHEN subdate(currentDate, 1)  THEN PaymentAmount  
 WHEN month() THEN PaymentAmount 
 WHEN year()  THEN PaymentAmount 
 ELSE 0
END

GROUP BY CollectorNumber

ORDER BY CollectorNumber, LastName, DateofPayment,
PaymentAmount