2014-11-20 193 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