Попробовать отладить его через Promise.each()
, возможно? Поскольку итерация последовательная, вы будете знать, какой Promise вас беспокоит.
Во-вторых, было бы здорово, если бы вы указали вспомогательную функцию.
В-третьих, почему with
? Если вы проверяете MDN - с помощью , в нем четко указано , и я цитирую :
Использование оператора
BLOCKQUOTE>with
не рекомендуется, так как это может быть источник запутанных ошибок и проблем совместимости. Это имеет противоречие с двусмысленностью. Операторwith
затрудняет для читателя или компилятора JavaScript решение о том, будет ли найдено неквалифицированное имя в цепочке областей действия, и если да, то в каком объекте.
Попробуйте это:
select * from orders o
where o.orderdate between @startdate AND @enddate
and ((@Closed = 1 And o.ClosedDate IS NULL) Or (@Closed = 0 And o.ClosedDate IS NOT NULL))
Будьте варьируются осторожные относительно смешивания AND's и OR's в где пункт. При выполнении этого круглая скобка для управления порядком оценки ОЧЕНЬ важна.
SQL-оператор:
SELECT *
FROM orders
WHERE orderdate BETWEEN @startdate AND @enddate
AND (@Closed = 1 OR CLosedDate IS NOT NULL)
Или это:
select * from orders o
where o.orderdate between @startdate AND @enddate
and ( (@Closed = 1 AND o.ClosedDate IS NULL)
OR (ISNULL(@Closed, 0) <> 1 AND o.ClosedDate IS NOT NULL)
)
Похоже на желание всех заказов между двумя датами, которые имеют непоследовательную Близкую информацию. Другие предложения, вероятно, как хорошие (или лучше), но я вполне уверен, что это работает и читаемо мне (большинство других предложений появилось, поскольку я вводил).
Удачи!
Basicly, выпишите его.
select * from orders o
where o.orderdate between @startdate AND @enddate
and ((@Closed = 1 and o.ClosedDate IS NULL)
or (@Closed != 1 and o.ClosedDate IS NOT NULL))
удвойтесь, может быть удален