Как вычесть отрицательные десятичные дроби в Sql Server, используя Вставить в - PullRequest
2 голосов
/ 26 октября 2011

Я пытаюсь написать запрос, который отслеживает историю десятичных значений в 2 таблицах.

Table1

PK  Num1   D1        D2
1   1      -0.00375  -0.005
2   1      -0.00325  

Table2

PK   Num1   D1        D2
1    1      -0.00375  -0.0025
2    2      -0.005

Table3 (Таблица истории)

Num1  OldD2     NewD2     D2Difference
1     -0.005  -0.0025  0.0000//This is where I am having trouble

Мой запрос добавит 2 значения D2, но не вычтет.Это всегда возвращает 0,00 Вот мой запрос.

BEGIN TRANSACTION
INSERT INTO Table3
SELECT Table1.Num1, Table1.D2, Table2.D2, (Table1.D2 - Table2.D2)
FROM Table1
INNER JOIN Table2 ON Table1.Num1 = Table2.Num1 AND Table1.D1 = Table2.D1
COMMIT

Опять же, я могу добавить к 2 десятичным знакам, но вычитание всегда возвращает 0,00.Я знаю, что скучаю по деревьям через лес (или наоборот?).

ПРИМЕЧАНИЕ: Все десятичные дроби (5,5), и объединения являются результатомтаблиц 1 и 2, имеющих уникальное значение D1 для каждого Num1.

1 Ответ

3 голосов
/ 26 октября 2011

Поскольку вы выбираете только D1, равные в обеих таблицах - операция вычитания вернет 0,00

Просто удалите условие JOIN AND Table1.D1 = Table2.D1

РЕДАКТИРОВАТЬ: Примечание1008 *

Поскольку вопрос был изменен, мой ответ не очевиден, потому что первоначальный SQL-запрос был изменен

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