我正在使用PostgreSQL。我的桌子上有阅读价值。从那里,我必须减去之前的值来找到消耗量。
我找到了SQL查询。如何在续集中使用它?除了原始查询,还有其他选择吗?
SQL查询:
SELECT "readingValue",
"readingValue" - COALESCE(LAG("readingValue") OVER
(ORDER BY "readingTime")) AS consumption
FROM public."tableName" LIMIT 100;
答案 0 :(得分:0)
我不知道这是否有帮助,但是您也可以避免使用Form1
,而是使用相关子查询来查找滞后值:
public class Form2: Form
{
//{...}
private string _selectedPath;
public Form2(string selectedPath)
{
_selectedPath = selectedPath;
}
//{...}
private void Form2_Load(object sender, EventArgs e)
{
webBrowser1.Url = new Uri(_selectedPath);
}
}
private void Showfrm2Btn_Click(object sender, EventArgs e)
{
Form2 Frm2 = new Form2(txtpath.Text);
Frm2.ShowDialog();
}
使用您的JavaScript ORM框架,这也许更容易表达出来。
答案 1 :(得分:0)
我们可以将sequelize.literal用于属性中的字段。
model.findAll({
where: whereConditionObj,
attributes: ['id','readingValue',
[
db.sequelize.literal('"readingValue" - COALESCE(LAG("readingValue") OVER (ORDER BY "readingTime"))'), 'Consumption'
]
],
order: [['readingTime', 'ASC']],
group:['id', 'readingValue']
})
答案 2 :(得分:0)
您可以使用连续字面量来做到这一点。
model.update({'count': sequelize.literal('count + 1')}, { where: { id: 1 }})
您也可以使用增量方法来做到这一点。
Model.increment('seq', { by: 5, where: { id: 'model_id' });