Объедините два оператора выбора, содержащие предложениеwhere, используя alasql в node.js. ⇐ 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 } ] Я могу получить желаемый результат, запустив и сохранив каждый подзапрос отдельно, а затем выполнив соединение с использованием этих объектов, но мне хотелось бы знать, как это сделать, используя только вложенные подзапросы, за один вызов.
Любая помощь будет оценена по достоинству!
Я использую 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 } ] Я могу получить желаемый результат, запустив и сохранив каждый подзапрос отдельно, а затем выполнив соединение с использованием этих объектов, но мне хотелось бы знать, как это сделать, используя только вложенные подзапросы, за один вызов.
Любая помощь будет оценена по достоинству!
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение