好的,首先,我正在构建一个查询来搜索以MySQL数据库形式提供的MLS数据,所以我无法控制数据格式,因此我相信我必须做一个大量的转换以便以可管理的形式获取数据。 SQL错误正在消失。
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near ' DECIMAL(2, 1)) / .5,
CAST(idx1.full_baths, DECIMAL(2, 1))), DECIMAL(2, 1)) AS b' at line 1
查找错误代码并将其发送到保留字页面,但我无法识别任何保留字。
现在是sql
(所有字段均为VARCHAR
)
SELECT idx_common.mls_no AS mls_no,
CONCAT_WS(" ", idx_common.street_no, idx_common.street_direction, idx_common.street_name) AS address,
idx_common.city AS city,
idx_common.state AS state,
idx_common.total_sqft AS total_sqft,
idx_common.asking_price AS price,
idx1.bedrooms AS bedrooms,
CAST(
SUM(
(CAST(idx1.half_baths, DECIMAL(2, 1)) / .5),
CAST(idx1.full_bath, DECIMAL(2, 1))
),
DECIMAL(2, 1)
) AS bathrooms,
idx1.residential_prop_type AS type,
"Listing Agent" AS agent
FROM (idx_common)
JOIN idx1 ON idx_common.mls_no = idx1.mls_no
WHERE `idx_common`.`mls_no` = 'query'
OR idx_common.zip LIKE '%query%'
OR idx_common.city LIKE '%query%'
答案 0 :(得分:3)
SUM()只接受一个参数。你有SUM(演员(...),演员(...))
我认为你打算做+,而不是SUM (CAST(idx1.half_baths,DECIMAL(2,1))/ .5) + CAST(idx1.full_bath,DECIMAL(2,1))
SUM添加整个表中列的所有值。您只能在GROUP BY查询中使用它。
答案 1 :(得分:3)
我相信你根本不需要SUM
:
SELECT idx_common.mls_no AS mls_no,
CONCAT_WS(" ", idx_common.street_no, idx_common.street_direction, idx_common.street_name) AS address,
idx_common.city AS city,
idx_common.state AS state,
idx_common.total_sqft AS total_sqft,
idx_common.asking_price AS price,
idx1.bedrooms AS bedrooms,
CAST(idx1.half_baths AS DECIMAL(2, 1)) * .5 +
CAST(idx1.full_bath AS DECIMAL(2, 1)) AS bathrooms,
idx1.residential_prop_type AS type,
"Listing Agent" AS agent
FROM idx_common
JOIN idx1
ON idx_common.mls_no = idx1.mls_no
WHERE `idx_common`.`mls_no` = 'query'
OR idx_common.zip LIKE '%query%'
OR idx_common.city LIKE '%query%'
我还将/ 0.5
更改为* 0.5
,因为它似乎更适合此查询。
如果公寓有3
个半浴室和2
个完整的浴室,此查询将输出(3 / 2) + 2
= 3.5
个浴室。
这是你想要的吗?
答案 2 :(得分:2)
我认为函数CAST
适用于AS
,而非","
。像这样:
CAST(idx1.half_baths AS DECIMAL(2, 1))
您需要在所有CAST上替换它。
答案 3 :(得分:1)
确保您的MYSQL版本是> 5.0.8。在此版本之前,DECIMAL类型未添加到CAST函数中。