2016-03-21 10 views
0
SELECT SUM(IF(create_month = MONTH(NOW() - INTERVAL 1 MONTH) 
      AND create_year = YEAR(NOW() - INTERVAL 1 MONTH), 1, 0)) AS lastmonth, 
    SUM(IF(create_month = MONTH(NOW() - INTERVAL 2 MONTH) 
      AND create_year = YEAR(NOW() - INTERVAL 2 MONTH), 1, 0)) AS lastmonth2 
FROM incident_view 
WHERE customer_company_name = "Company" 

みなさん、こんにちは、SQL - BigDecimalの中にキャスト2つのエイリアス

どのように私はBigDecimalのタイプ/ダブル、または任意の他のdecimal型に(両方のIntである、lastmonthとlastmonth2)二つの結果をキャストすることはできますか?

助けていただければ幸いです。

乾杯

+0

http://dev.mysql.com/doc/refman/5.7/en/cast-functions.html#function_cast –

答えて

0

あなたはJavaの型ではなく、MySQLの一種である、BigDecimalを述べました。

SELECT CAST(SUM(IF(create_month = MONTH(NOW() - INTERVAL 1 MONTH) 
     AND create_year = YEAR(NOW() - INTERVAL 1 MONTH), 1, 0)) AS NUMERIC) AS lastmonth, 
     CAST(SUM(IF(create_month = MONTH(NOW() - INTERVAL 2 MONTH) 
     AND create_year = YEAR(NOW() - INTERVAL 2 MONTH), 1, 0)) AS NUMERIC) AS lastmonth2 
FROM incident_view 
WHERE customer_company_name = "Company" 
0

使用CAST(.. AS DECIMAL)

SELECT 
    CAST(SUM(IF(create_month = MONTH(NOW() - INTERVAL 1 MONTH) 
      AND create_year = YEAR(NOW() - INTERVAL 1 MONTH), 1, 0)) AS DECIMAL) AS lastmonth, 
    CAST(SUM(IF(create_month = MONTH(NOW() - INTERVAL 2 MONTH) 
      AND create_year = YEAR(NOW() - INTERVAL 2 MONTH), 1, 0)) AS DECIMAL) AS lastmonth2 
FROM incident_view 
WHERE customer_company_name = "Company" 
:いずれの場合では、 documentationは、あなたのキャストが、このようになりますので、Javaの BigDecimalに変換するには、 NUMERICまたは DECIMAL MySQLのタイプを含め、いずれかの種類の数を使用することをお勧めします