Группировать из-за поля, и что увидели всю стоимость каждого реестра - SQL

Я нуждаюсь в том, чтобы группировать в дату таблицу с несколькими датами со стоимостью, определенной для каждой даты. Например:

01/01/2016 10
01/01/2016 20
01/01/2016 30
02/01/2016 40
02/01/2016 50
...

Результат должен бы быть:

01/01/2016 10 20 30
02/01/2016 40 50

Я должен получать это в таблице PostgreSQL, которой я манипулирую с Sequelize и NodeJS.

    var options = {
    where: {mes: req.body.resumen.mes, any: req.body.resumen.any},
    group: 'dia',
    order: [
        ['fecha', 'ASC']
    ]
};
models.Lectura.findAll(options).then(function(lecturas) {
    res.render('lecturas/resumen', {lecturas: lecturas,  errors: []});
}).catch(function(error){next(error)});

Когда iterio на чтении, он только дает мне последнюю каждой группы, нечто похожее:

01/01/2016 30
02/01/2016 50

Как он мог бы решать это?

3
задан 09.01.2017, 21:43
0 ответов

Я ничего не знаю node.js и sequelize.js, так что я не могу помогать тебе из-за этой стороны.

Но да я могу оставлять тебе модель класса консультации SQL в PostgreSQL, которая позволяет тебе группировать реестры этой формы. И потом ты можешь налаживать консультацию как твою необходимость.

Принимая таблицу tbl со структурой и следующими данными:

create table tbl (
  fecha date not null,
  valor int not null
);

insert into tbl (fecha, valor)
values
('2016-01-01', 10),
('2016-01-01', 20),
('2016-01-01', 30),
('2016-02-01', 40),
('2016-02-01', 50);

Следующая консультация, используя функцию string_agg возврати результаты как их ты просишь:

select fecha, string_agg(valor::text, ' ' order by valor)
  from tbl
 group by fecha;

Demo

3
ответ дан 03.12.2019, 17:47
  • 1
    весь está сделанный, докуда select, мне остается знать qué funció n Sequelize использовать вместо string_agg. –  10.01.2017, 20:05
  • 2
    ¿ Есть возможность перемещать эту консультацию SQL только без части PostgreSQL, и у которой есть точно тот же эффект, что и Demo? –  05.03.2019, 01:16

Это код nodejs, чтобы это решать с Sequelize:

var options = {

        where: {mes: req.body.resumen.mes, any: req.body.resumen.any},

        include: [{model: models.Lectura, order: 'codigo'}],

        order: [
            ['fecha', 'ASC']
        ]

    };

    models.Parte.findAll(options).then(function(partes) {

        res.render('partes/resumen', {partes: partes, errors: []});

    }).catch(function(error){next(error)});

В options выбирают реестры таблицы Часть, которую они выполняют с условием месяца и года, и включают Ваши детали таблицы Чтение. После достаточно повторять на каждом образцовом реестре и Ваших деталях.

0
ответ дан 03.12.2019, 17:47