-Файл - сила, каталоги Intermediate не создаются

использовать аналитическую функцию lag() для получения разности двух строк и случая, когда для получения оригинального значения столбца заказа, где нет разницы

    with cte as
(
select 1 as id, 56 as sclid, '2018-01-01' as s_date, 10 as orders
union all
select 1,56,'2018-05-05',24 union all
select 1,56,'2018-07-07',35 union all
select 1,103,'2019-04-04',26 union all
select 1,103,'2019-03-03',19 
) select t.*, 
case when ( lag([orders])over(partition by id,sclid order by s_date ) -[orders] )
 is null then [orders] else
  ( lag([orders])over(partition by id,sclid order by s_date ) -[orders] )*(-1) end
  as diff
 from cte t

выход

id  sclid   s_date   orders diff
1    56   2018-01-01    10  10
1    56   2018-05-05    24  14
1    56   2018-07-07    35  11
1    103  2019-03-03    19  19
1   103   2019-04-04    26  7

[113 ] демонстрационная ссылка

7
задан alex2k8 2 April 2009 в 23:51
поделиться

2 ответа

Это похоже на ошибку. На http://www.vistax64.com/powershell/62805-out-file-force-doesnt-seem-work-advertised.html эта проблема была уже зарегистрирована на MS Connect.

9
ответ дан 6 December 2019 в 14:09
поделиться

Как упомянуто Micheal, это похоже на ошибку (или ложная реклама!).

Править: Я первоначально думал, что">" оператор работал, но я сделал ошибку в своем тесте. Это не делает, как можно было бы ожидать. Однако можно попытаться использовать новый объект вместо этого:

new-item -force -path $path -value "bar" -type file

Не точно то же, но можно создать простую функцию, чтобы сделать то, что Вы хотите:

function Out-FileForce {
PARAM($path)
PROCESS
{
    if(Test-Path $path)
    {
        Out-File -inputObject $_ -append -filepath $path
    }
    else
    {
        new-item -force -path $path -value $_ -type file
    }
}
}
6
ответ дан 6 December 2019 в 14:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: