2016-03-21 4 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" 

Hallo an alle,SQL - Cast zwei Alias ​​in BigDecimal

Wie kann ich werfen die beiden Ergebnisse (lastmonth und lastmonth2, die beide Int sind) in die BigDecimal Typ/double, oder einem anderen Typ decimal?

Würde mich über Hilfe freuen.

Prost

+0

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

Antwort

0

Sie erwähnten BigDecimal, die ein Java-Typ ist, ist kein Typ MySQL. In jedem Fall empfiehlt die documentation entweder eine Reihe von Arten verwenden, einschließlich dem NUMERIC oder DECIMAL MySQL-Typ, mit Java zu konvertieren BigDecimal, so dass Ihr Guss etwas könnte wie folgt aussehen:

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

Verwenden 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"