Это довольно сложная база данных. Поэтому я упростил структуру для облегчения понимания.
У меня есть 2 таблицы ТАБЛИЦА A: транзакции
p_id rev_count
1 1
2 1
3 1
1 1
1 1
1 2 (Gets incremented as it has reached max entries)
2 1
2 1
2 2 (Gets incremented as it has reached max entries)
1 2
2 2
ТАБЛИЦА B: rev_countReference
p_id rev_count
1 2
2 2
3 1
Итак, в основном таблица B сохраняет значение rev_count как ссылку для ТАБЛИЦЫ A. Поскольку p_id может принимать только 3 транзакции, всякий раз, когда p_id превышает 3 count, значение rev_count увеличивается, и следующая запись p_id будет иметь увеличенное значение rev_count.
ВОПРОС Я хочу получить количество транзакций, занятых в максимальном rev_count каждым p_id.
Желаемый результат:
p_id used_rev
1 1
2 2
3 1
Пробовали до сих пор:
К сожалению, я ' m пока не может написать код для приведенного выше примера БД. Но то, что я пробовал до сих пор с реальным кодом.
public function getfreeslots($user_id) {
$this->db->select('count(t.id), t.reinvest_count, MAX(t.reinvest_count) AS max_reinvest, COUNT(t.id) AS outstandingSlots');
$this->db->from('transactions t');
$this->db->join('reinvestCount rc', "t.receiver_id=rc.user_id AND t.phase_id=rc.phase_id",'LEFT');
$this->db->where('t.receiver_id', $user_id);
$this->db->having('t.reinvest_count >= max_reinvest');
$this->db->group_by('t.phase_id');
$this->db->order_by('t.phase_id', 'ASC');
$query = $this->db->get();
$row = $query->result();
if (empty($row))
return FALSE;
return $row;
}
Я использую построитель запросов Codeigniter. Поэтому ответ с помощью построителя запросов будет очень признателен.