我有以下查詢,它在直接從 mysql 運行時返回結果。從 golang 程序運行時,相同的查詢返回 0 值。package mainimport ( "github.com/rs/zerolog/log" _ "github.com/go-sql-driver/mysql" "github.com/jmoiron/sqlx")var DB *sqlx.DBfunc main() { DB, err := sqlx.Connect("mysql", "root:password@(localhost:3306)/jsl2") if err != nil { log.Error().Err(err) } sqlstring := `SELECT salesdetails.taxper, sum(salesdetails.gvalue), sum(salesdetails.taxamt) FROM salesdetails Inner Join sales ON sales.saleskey = salesdetails.saleskey where sales.bdate >= '2021-12-01' and sales.bdate <= '2021-12-31' and sales.achead IN (401975) group by salesdetails.taxper order by salesdetails.taxper` rows, err := DB.Query(sqlstring) for rows.Next() { var taxper int var taxableValue float64 var taxAmount float64 err = rows.Scan(&taxper, &taxableValue, &taxAmount) log.Print(taxper, taxableValue, taxAmount) } err = rows.Err() if err != nil { log.Error().Err(err) }}在控制臺上,運行程序會返回以下值。在 SQL 瀏覽器中,它返回 4 行,這是正確的。sql 瀏覽器對同一查詢的結果是0 1278.00 0.005 89875.65 4493.7812 3680.00 441.6018 94868.73 17076.37但在程序中也返回 0 值的 4 行。{"level":"debug","time":"2022-01-13T17:07:39+05:30","message":"0 0 0"}{"level":"debug","time":"2022-01-13T17:07:39+05:30","message":"0 0 0"}{"level":"debug","time":"2022-01-13T17:07:39+05:30","message":"0 0 0"}{"level":"debug","time":"2022-01-13T17:07:39+05:30","message":"0 0 0"}如何設置聚合函數的數據類型。
1 回答

翻翻過去那場雪
TA貢獻2065條經驗 獲得超14個贊
我將 taxper 的數據類型更改為 float 并且它起作用了。我在檢查 rows.Scan( 正如@mkopriva 所建議的那樣檢查錯誤后發現了這個
- 1 回答
- 0 關注
- 106 瀏覽
添加回答
舉報
0/150
提交
取消