У меня есть 3 связанные таблицы в моей базе данных, и я пытаюсь вернуть отфильтрованные общее количество указанных столбцов для текущей даты. < /p>
Мне нужно перечислить разделы [sec_name], дефекты Qty [sum (pdr_qty)]], производство qty [sum (pg_qty)]. >
section < /th>
defects qty < /th>
Производство qty < /th> < /tr>
< /thead>
строка 2 < /td>
100
300
ТАБЛИЦА1: разделы < /p>
sec_id < /th>
sec_name < /th>
< /tr>
< /thead>
< tr>
1 < /td>
строка 1 < /td>
< /tr>
2
строка 2
< P> Table2: Production_defects_report < /p>
< Br /> pdr_id < /th>
pdr_section_id < /th>
pdr_date < /th>
pdr_qty < /th>
< /tr>
< /thead>
1 < /td>
2 < /td >
2023-12-10 16:25:46 < /td>
50 < /td>
< /tr>
2 < /td>
2 < /td>
2023-12-10 16:25:47 < /td>
50
table3: production_gate
pg_id < /th>
pg_sec_id < /th>
pg_date < /th>
pg_qty < /th>
< /tr>
< / / Thead>
1 < /td>
2 < /td>
2023-12 -10 16:25:46 < /td>
100 < /td>
< /tr>
2 < /td>
2 < /td>
2023-12-10 16:25:47 < /td>
200 < /td>
< /tr>
< /tbody>
< /table> < /div>
mode method: < /p>
public function fetch_data($limit, $start)
{
$today = date('Y-m-d');
$this->db->select('sections.sec_name, SUM(production_defects_report.pdr_qty) as defect_qty, SUM(production_gate.pg_qty) as production_qty');
$this->db->from('production_defects_report');
$this->db->join('sections', 'sections.sec_id = production_defects_report.pdr_section_id');
$this->db->join('production_gate', 'production_gate.pg_sec_id = production_defects_report.pdr_section_id ', 'left');
$this->db->where('date(production_defects_report.pdr_date)',$today);
$this->db->where('date(production_gate.pg_date)',$today);
$this->db->group_by('sections.sec_id');
$query = $this->db->get();
if ($query->num_rows() > 0) {
foreach ($query->result_array() as $row) {
$data[] = $row;
}
return $data;
}
return false;
}
< /code>
Я создал метод модели с использованием codeigniter3, но я обнаружил, что сгруппированные итоги просчитывают-они чрезмерно перечисляют. Проблема, по -видимому, является результатом суммирования декартового продукта. Другими словами, пункты соединения вызывают дублирование квалификационных рядов в группах, а значения sum () не являются использования.
Подробнее здесь: https://stackoverflow.com/questions/784 ... lating-amo
SQL Запрос Суммирование сгруппированных записей из двух соединенных таблиц-это перепродажа ⇐ Php
Кемеровские программисты php общаются здесь
1739521991
Anonymous
У меня есть 3 связанные таблицы в моей базе данных, и я пытаюсь вернуть отфильтрованные общее количество указанных столбцов для текущей даты. < /p>
Мне нужно перечислить разделы [sec_name], дефекты Qty [sum (pdr_qty)]], производство qty [sum (pg_qty)]. >
section < /th>
defects qty < /th>
Производство qty < /th> < /tr>
< /thead>
строка 2 < /td>
100
300
ТАБЛИЦА1: разделы < /p>
sec_id < /th>
sec_name < /th>
< /tr>
< /thead>
< tr>
1 < /td>
строка 1 < /td>
< /tr>
2
строка 2
< P> Table2: Production_defects_report < /p>
< Br /> pdr_id < /th>
pdr_section_id < /th>
pdr_date < /th>
pdr_qty < /th>
< /tr>
< /thead>
1 < /td>
2 < /td >
2023-12-10 16:25:46 < /td>
50 < /td>
< /tr>
2 < /td>
2 < /td>
2023-12-10 16:25:47 < /td>
50
table3: production_gate
pg_id < /th>
pg_sec_id < /th>
pg_date < /th>
pg_qty < /th>
< /tr>
< / / Thead>
1 < /td>
2 < /td>
2023-12 -10 16:25:46 < /td>
100 < /td>
< /tr>
2 < /td>
2 < /td>
2023-12-10 16:25:47 < /td>
200 < /td>
< /tr>
< /tbody>
< /table> < /div>
mode method: < /p>
public function fetch_data($limit, $start)
{
$today = date('Y-m-d');
$this->db->select('sections.sec_name, SUM(production_defects_report.pdr_qty) as defect_qty, SUM(production_gate.pg_qty) as production_qty');
$this->db->from('production_defects_report');
$this->db->join('sections', 'sections.sec_id = production_defects_report.pdr_section_id');
$this->db->join('production_gate', 'production_gate.pg_sec_id = production_defects_report.pdr_section_id ', 'left');
$this->db->where('date(production_defects_report.pdr_date)',$today);
$this->db->where('date(production_gate.pg_date)',$today);
$this->db->group_by('sections.sec_id');
$query = $this->db->get();
if ($query->num_rows() > 0) {
foreach ($query->result_array() as $row) {
$data[] = $row;
}
return $data;
}
return false;
}
< /code>
Я создал метод модели с использованием codeigniter3, но я обнаружил, что сгруппированные итоги просчитывают-они чрезмерно перечисляют. Проблема, по -видимому, является результатом суммирования декартового продукта. Другими словами, пункты соединения вызывают дублирование квалификационных рядов в группах, а значения sum () не являются использования.
Подробнее здесь: [url]https://stackoverflow.com/questions/78404696/sql-query-summing-grouped-records-from-two-joined-tables-is-over-calculating-amo[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия