我的原始查詢是
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 查詢保存結果的代碼是:
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 above
var result []ATQueryResult
db.Table(model.TableAllTrans).Raw(queryString).Find(&result)
fmt.Println(result[3])
但問題是,result[i].sum一切result[i].sum2都是0-zero。在 DBeaver 上實時查詢時,我可以看到實際的總和數(全部非零),盡管有上述警告。但是當我嘗試將查詢結果掃描到 時result,所有的總和值為 0。
uj5u.com熱心網友回復:
必須為 gorm(或它在后臺利用的任何東西)匯出欄位才能填充它們。嘗試使用:
type ATQueryResult struct {
Category string `gorm:"column:category"`
Month string `gorm:"column:month"`
Sum float32 `gorm:"column:sum"`
Sum2 float32 `gorm:"column:sum2"`
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/522258.html
