Заменить значения в столбце математическим произведением, включающим значения в другом столбце? - PullRequest
0 голосов
/ 29 октября 2019

У меня есть база данных SQL, в которой есть таблица данных о продажах. Два столбца в этой таблице имеют тип «Деньги, ноль». Из-за неправильного использования программного обеспечения, на которое опирается эта база данных, значение было присвоено столбцу B, который должен был быть присвоен столбцу A.

В столбце B есть только 0,0000 или положительные числовые данные, представляющие собой денежную стоимость в центах. ,Столбец А содержит некоторые положительные, некоторые отрицательные и около 0,0000 числовых данных, которые представляют собой денежную стоимость в долларах. Данные в столбце А точны и должны остаться. Значения в столбце B следует сначала разделить на 100 (для пересчета в доллары), сделать отрицательное значение и добавить к данным в столбце A (если применимо).

Данные в столбце B могут затем бытьпри удалении все значения должны заканчиваться на 0,0000.

Пример начальных данных:

Column_A        Column_B
0.0000          2500.0000
40.0000         1000.0000
-25.0000        0.0000
-32.0000        1500.0000
0.0000          0.0000

Значения Column_B преобразуются в: -25,0000 -10,0000 0,0000 -15,0000 0,0000

и добавлены к их соответствующим значениям Column_A. Данные в столбце B никогда не будут начинаться с отрицательных значений.

Пример окончания данных:

Column_A        Column_B
-25.0000        0.0000
30.0000         0.0000
-25.0000        0.0000
-47.0000        0.0000
0.0000          0.0000

Мои знания SQL довольно ограничены, и я могу выполнять простые запросы, но я 'У нас не было опыта выполнения математических операций, подобных этой, и поиск в Google и обмен стека не привел к подобным запросам, которые я мог бы использовать повторно. Если бы кто-нибудь мог помочь направить меня в правильном направлении, я был бы очень признателен.

Ответы [ 2 ]

1 голос
/ 29 октября 2019

Сначала сделайте выбор, чтобы убедиться, что ничего не проваливается (делите на ноль ошибок и т. Д.), Например:

select 

    Column_A
    , Column_B
    , Column_A+(Column_B/100)*-1.0  

from your_table

Если все проверено, сначала выполните математику, обновите column_A, а затем обновите column_B.

Итак, ваш оператор SQL будет выглядеть примерно так:

update your_table
  set Column_A = Column_A+(Column_B/100)*-1.0
  , Column_B = 0.00
0 голосов
/ 29 октября 2019

Если ваши приложения все еще работают с той же ошибкой, и вам нужно извлечь столбец с нужной информацией, попробуйте это :)

(это создаст новый столбец с именем Column_C с желаемым результатом)

SELECT *, (([Column_B] * -0.01) + [Column_A]) AS Column_C FROM myTable 

В противном случае, если вам нужно изменить значения столбцов в таблице, Гарри ответит то, что вам нужно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...