package models import "time" type Summary struct { ExpID string ExpDesc string ExpDate string PeopleName string CatDesc string ExpValue string } func GetSummary() ([]*Summary, error) { rows, err := db.Query("SELECT ex.expid, ex.expdesc, ex.expdate, p.peopname, ca.catdesc, ex.expvalue FROM expenses ex INNER JOIN people p ON ex.exppayer = p.peopid INNER JOIN categories ca ON ex.expcat = ca.catid") if err != nil { return nil, err } defer rows.Close() smrys := make([]*Summary, 0) for rows.Next() { date := new(time.Time) smry := new(Summary) err := rows.Scan(&smry.ExpID, &smry.ExpDesc, &date, &smry.PeopleName, &smry.CatDesc, &smry.ExpValue) if err != nil { return nil, err } smry.FormatDate(*date) smrys = append(smrys, smry) } if err = rows.Err(); err != nil { return nil, err } return smrys, nil } func (smry *Summary) FormatDate(date time.Time) { smry.ExpDate = date.Format("2006-01-02") }