package main import ( "database/sql" _ "embed" "fmt" "time" ) //go:embed sql/get_top.sql var get_top string type GetTopResult struct { Description string `db:"description,omitempty"` Sku string `db:"sku,omitempty"` Level2 string `db:"level2,omitempty"` Level3 string `db:"level3,omitempty"` Rev float64 `db:"rev,omitempty"` Qty int64 `db:"qty,omitempty"` Trend sql.NullFloat64 `db:"trend,omitempty"` } func (r *Runner) GetTop() []GetTopResult { //Get Current Days current_day := time.Now() year := current_day.Format("2006") previous_month := current_day.AddDate(0, -1, 0).Format("01") two_previous_month := current_day.AddDate(0, -2, 0).Format("01") four_previous_month := current_day.AddDate(0, -4, 0).Format("01") query_string := fmt.Sprintf(get_top, year, previous_month, four_previous_month, two_previous_month) var top []GetTopResult err := r.db.Select(&top, query_string) checkErr(err) return top }