John Th Ответов: 1

Как вычесть два столбца varchar(тип данных)


Кто - нибудь здесь знает, как вычесть два столбца в одной таблице? У меня есть колонки: общая сумма и выставленные наличные. Теперь я хочу вычесть эти 2 столбца и отобразить результат в виде другого столбца. Как это сделать?

Стол:
try7 — imgbb.com[^]

Что я уже пробовал:

Выберите MAX(trans_cash) - MIN(trans_total) из tbltransactions;

CHill60

Если это типы varchar, то измените их прямо сейчас - Используйте правильный тип данных для значений. Числовые данные не относятся к текстовым столбцам.
Избавьтесь от Макса и Мина (если только вы не пытаетесь сделать что-то "умное")
Пожалуйста, не используйте изображения для публикации таких данных, это довольно легко вставить в ваш вопрос

1 Ответов

Рейтинг:
1

OriginalGriff

Просто: измените свою базу данных.
Если у вас есть числовые значения, то храните их в числовых столбцах. Если вы этого не сделаете, то вы настроите себя на проблемы, и чем позже вы оставите это, прежде чем укусите пулю и исправите фактическую проблему, тем больше будет стоить проблема и тем труднее ее исправить.

Не используйте VARCHAR или NVARCHAR для чего - либо, кроме строковых данных-храните числа в Столбцах INT, FLOAT или DECIMAL, храните даты в Столбцах DATE, DATETIME или DATETIME2. И такие проблемы просто тают...

Вы можете исправить это для данного конкретного случая, приведя данные NVARCHAR к целому числу, но запрос завершится неудачей, если какой-либо столбец содержит нечисловое значение ... гораздо лучше исправить проблему с данными вместо этого!


John Th

Должен ли я изменить тип данных varchar на decimal(6,2)?

OriginalGriff

Это должно сработать.