На локалке в консоль выводит
35316 2018-10-02 17:01:58 38 35316 17 899.41
35316 2018-10-02 17:01:58 38 35316 18 0
35316 2018-10-02 17:01:58 38 35316 19 0
35316 2018-10-02 17:01:58 38 35316 20 0
(Маленький отрывок)
На сервере
80058 2018-10-03 00:27:50 35 0 0 0
80058 2018-10-03 00:27:50 35 0 0 0
80058 2018-10-03 00:27:50 35 0 0 0
Последние три переменные всегда нули
Отрывок кода:
var rows *sql.Rows
if len(r.Ids) < 300 {
query_sql = "SELECT `id`,`time`,`meter_id`,`shot_id`,`type_id`,`value` FROM measures_shots,measures_values WHERE `time` BETWEEN ? AND ? AND id=shot_id AND type_id IN(2,17,18,19,20)"
rows, err = conn.Query(query_sql, sql_time_from, sql_time_to)
} else {
sql_params = append(sql_params, sql_time_from, sql_time_to)
query_sql = "SELECT `id`,`time`,`meter_id`,`shot_id`,`type_id`,`value` FROM measures_shots,measures_values WHERE `meter_id` IN(%s) AND `time` BETWEEN ? AND ? AND id=shot_id AND type_id IN(2,17,18,19,20)"
rows, err = conn.Query(fmt.Sprintf(query_sql, strings.Join(sql_q, ",")), sql_time_from, sql_time_to)
}
if err != nil {
log.Println(err)
return nil, err
}
sql_q = nil
sql_params = nil
var (
time_str string
shots_ln map[uint64]rep_server_shots_ln = make(map[uint64]rep_server_shots_ln)
sheet_ln *Rep_sheet_ln
sql_shots_ids []string
id uint64
types int
value float32
shot_id uint16
)
var arr = make(map[int]uint16)
i := 1
for rows.Next() {
rows.Scan(&id, &time_str, &meter_id, &shot_id, &types, &value)
fmt.Println(id, time_str, meter_id, shot_id, types, value)
if shot_id == 0 {
continue
}
sheet_ln, ok = ln_sheet[meter_id]
if !ok {
continue
}
sheet = sheet_ln.Sheet
if shot_id != arr[i-1] {
row = sheet.AddRow()
cell = row.AddCell()
cell.SetString(time_str)
} else {
cell = row.AddCell()
}
if types == 2 {
cell = row.AddCell()
}
cell.SetValue(value)
arr[i] = shot_id
i++
sql_shots_ids = append(sql_shots_ids, fmt.Sprintf("%d", id))
row_pos_ln[meter_id]++
shots_ln[id] = rep_server_shots_ln{
meter_id: meter_id,
row_num: row_pos_ln[meter_id],
}
}
rows.Close()