2014-11-20 194 views
0

如何将底线添加到我的语句中?SQl if where语句中的语句

SELECT 
AgentID, 
PaymentAmount 
FROM Table A 

WHERE 
DATEOFPAYMENT 

GROUP BY 
CollectorNumber 

ORDER BY 
CollectorNumber, 
LastName, 
DateofPayment, 
PaymentAmount 

如果DATEOFPAYMENT =昨天然后PaymentAmount否则为0为 '前一天'

如果DATEOFPAYMENT = current_Month然后PaymentAmount否则为0为 'MTD'

如果DATEOFPAYMENT = CURRENT_YEAR然后PaymentAmount否则为0为“YTD

+0

我不明白你想把这些放在哪里。你可以使用'CASE'而不是'IF',但是如何使用它取决于你在做什么。 – 2014-11-20 19:01:51

+1

查看CASE声明。我想这会帮助你。 http://msdn.microsoft.com/en-us/library/ms181765.aspx – 2014-11-20 19:03:23

+1

用'CASE'语句替换'WHERE'中的'DATEOFPAYMENT'。 – 2014-11-20 19:03:36

回答

0

我们可以研究CASE syntax from here , it would be, roughly (I am not acquainted with MySQL date formats , so please look that up)

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 

这几乎是全熟的伪代码,因此请修正语法。但案件陈述就是这样。

+1

这不会运行。 – 2014-11-20 19:05:52

+0

@GoatCO - 我知道,只要引导他沿着 – Coffee 2014-11-20 19:06:34

+1

'ELSE'就可以发生,但一旦发生,它应该在最后一个'WHEN..THEN'之后出现。 “AS”也不属于那里。 – 2014-11-20 19:12:47