MYSQL QUERY, ВСЕ О КОНКАТЕ - PullRequest
       25

MYSQL QUERY, ВСЕ О КОНКАТЕ

0 голосов
/ 12 декабря 2011

Это мой запрос

SELECT PART_NUM,DESCRIPTION, CONCAT('$',(ON_HAND*PRICE)) AS ON_HAND_VALUE
FROM part WHERE CLASS ='AP'

но когда я попытался запросить его, мои ответы всегда будут равны 0 долл., Как (ON_HAND * PRICE) не работает

это значения:

Microwave Oven == 32*$165
GAS RANGE == 8*495
DISHWASHER ==8*595
DRYER ==12*349.95
WASHER ==128399.99

это должен быть результат:

PART_NUM----DESCRIPTION ---------ON_HAND_VALUE
CD52 -----------MICROWAVE OVEN----$5280
DR93----------- GAS RANGE-----------    $3960
KT03----------- DISHWASHER-----------   $4760
KL62----------- DRYER-----------    $41994.4
DW11----------- WASHER-----------   $4799.88

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

Из ваших комментариев причина, по которой это не работает, заключается в том, что результат (On_Hand * price) ошибочен (вы умножаете число на строку)

С другой стороны, если on_hand - int, а цена равна decimal/double/float, тогда вы можете получить правильный результат, используя следующее:

CONCAT('$',convert(ON_HAND*PRICE,char))

, если ЦЕНА - varchar, я настоятельно рекомендую сохранить его как decimal допродолжается.Эта проблема, с которой вы столкнулись, - это только начало головной боли, которая у вас возникнет, если вы сохраните цены как varchar s.

, если это невозможно, то вы можете посмотреть на функцию Cast (), чтобы сначала наложить вашеvarchar как decimal или float перед выполнением умножения.

РЕДАКТИРОВАТЬ:

Кажется, что MySQL достаточно умен, чтобы конвертировать varchars в плавающие объекты сам по себе, однако он НЕ БУДЕТ работать, когда естьэто знак '$' в поле varchar.

Так что, возможно, попробуйте сделать следующее:

CONCAT('$',convert(ON_HAND*Right(PRICE,Length(Price)-1),char))
0 голосов
/ 12 декабря 2011

Видите ли, вы получите странные результаты, если попытаетесь умножить int на varchar.попробуйте это

CONCAT('$',CAST(PRICE,int)*ON_HAND)

или это

CONCAT('$',CONVERT(PRICE,int)*ON_HAND)

документы http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html

...