Объедините два оператора выбора, содержащие предложениеwhere, используя alasql в node.js.Javascript

Форум по Javascript
Ответить
Гость
 Объедините два оператора выбора, содержащие предложениеwhere, используя alasql в node.js.

Сообщение Гость »


Я использую alasql в node.js и не могу заставить работать соединение.

Вот фиктивные данные:

x = [ { дата: 20180501, цена: 23, товар: 'x' }, { дата: 20180501, цена: 46, товар: 'y' }, { дата: 20180502, цена: 29, товар: 'x' }, { дата: 20180502, цена: 50, товар: 'y' }, { дата: 20180503, цена: 22, товар: 'x' }, { дата: 20180503, цена: 43, товар: 'y' }, { дата: 20180504, цена: 21, товар: 'x' }, { дата: 20180504, цена: 43, товар: 'y' }, { дата: 20180505, цена: 26, товар: 'x' }, { дата: 20180505, цена: 48, товар: 'y' }] Я хотел бы получить для каждого дня соотношение между ценой продукта y и продукта y. Итак, мой желаемый результат:

desiredOutput = [ {дата: 20180501, соотношение цены: 46/23}, {дата: 20180502, соотношение цены: 50/29}, { дата: 20180503, соотношение цены: 43/22}, {дата: 20180504, соотношение цены: 43/21}, {дата: 20180505, цена_соотношение: 48/26}] Я пытаюсь получить это с помощью следующего запроса:

alasql("выберите дату, цену_y/price_x как цену_соотношения из (выберите дату, цену как цену_y из ? где продукт='y') как y join (выберите дату, цену как цену_х из ? где продукт=' x') как x в x.date=y.date", [x,x]) Но я не могу заставить его работать. Он не дает сбоя или чего-то еще, но я получаю только цену_x, а не соотношение. Вот что я получаю:

[ {дата: 20180501, цена_x: 23}, { дата: 20180502, цена_х: 29 }, { дата: 20180503, цена_x: 22 }, {дата: 20180504, цена_x: 21}, { дата: 20180505, цена_x: 26 } ] Я могу получить желаемый результат, запустив и сохранив каждый подзапрос отдельно, а затем выполнив соединение с использованием этих объектов, но мне хотелось бы знать, как это сделать, используя только вложенные подзапросы, за один вызов.

Любая помощь будет оценена по достоинству!
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»