Как рассчитать поле формулы для другого столбца в SQL Server - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть столбцы SQL Server с такими данными:

formula    amount  ficheno
-----------------------------
100*444    100     6555
10*698     698     6555

Я уже пробовал на SQL Server преобразовать varchar в двойную ошибку при получении.

Необходимо получить поле формулы в поле результата ...

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

Я следовал вашему запросу и преуспел. Большое вам спасибо @Andomar. Пересмотрен код для работы на сервере sql <2017 с функцией stuff. Если кто-то ищет ответ; </p>

  declare @sql nvarchar(max) = (

 SELECT  STUFF( (SELECT ' select ' + str([LOGICALREF])  + ', ' + str([LOGICALREFI])  + ', ' + REPLACE( Formül,',','.') +';'

               from BM_211_URETIM_PLANLANAN t

               for xml path ('')

              ), 1, 1, '' )

  )

    declare @temp table ( [LOGICALREF] int, [LOGICALREFI] int, [Planlanan Miktar] FLOAT);

    insert @temp exec(@sql);
0 голосов
/ 27 апреля 2019

Вы можете вычислить выражение, используя динамический SQL:

declare @sql nvarchar(max) = (
    select  string_agg(cast(
            'select ' + formula + ', ' + str(amount) + ', ' + str(ficheno)
            as nvarchar(max)), ';')
    from    YourTable
);
declare @temp table (id int, amount int, ficheno int);
insert @temp exec(@sql);
select * from @temp;

-->

id      amount  ficheno
44400   100     6555
6980    698     6555

Рабочий пример для db <> fiddle.

...