为了账号安全,请及时绑定邮箱和手机立即绑定

使用带有 Gorm 的原始查询从 psql 检索 sum() 结果

使用带有 Gorm 的原始查询从 psql 检索 sum() 结果

Go
精慕HU 2023-03-07 14:26:28
我的原始查询是SELECT   at."category" AS "category",   at."month" AS "month",   sum(at.price_aft_discount) as "sum",   sum(at.qty_ordered) as "sum2" FROM   all_trans at GROUP BY   at."category",   at."month" ORDER BY   at."category" ASC,   at."month" asc在 DBeaver 中执行上述查询时,总和列给出警告:sum: numeric(131089,0) (Read-only: No corresponding table column)。给出了相同的警告sum2我使用 Gorm 在 Go 中查询保存结果的代码是:type ATQueryResult struct {   category string  `gorm:"column:category"`   month    string  `gorm:"column:month"`   sum      float32 `gorm:"column:sum"`   sum2     float32 `gorm:"column:sum2"`}queryString := ... // same as abovevar result []ATQueryResultdb.Table(model.TableAllTrans).Raw(queryString).Find(&result)fmt.Println(result[3])但问题是,所有result[i].sum和result[i].sum2是0-zero。在 DBeaver 上实时查询时,我可以看到实际的总和数(全部非零),尽管有上述警告。但是当我尝试将查询结果扫描到 时result,所有的总和值为 0。
查看完整描述

1 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

必须为 gorm(或它在引擎盖下利用的任何东西)导出这些字段才能填充它们。尝试使用:


type ATQueryResult struct {
    Category string  `gorm:"column:category"`
    Month    string  `gorm:"column:month"`
    Sum      float32 `gorm:"column:sum"`
    Sum2     float32 `gorm:"column:sum2"`}


查看完整回答
反对 回复 2023-03-07
  • 1 回答
  • 0 关注
  • 409 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号