2016-05-10 2 views
0

Небольшая помощь: мне нужно подсчитать некоторые числа до определенного значения и сгруппировать их по id. Например:
мой запрос:Mysql - подсчитывать строки до определенного значения по умолчанию и группировать их

SELECT part_number, 
NAME, 
NAME2, 
count(id) as tot_prod, 
min(serial_number) as serie_min, 
max(serial_number) as serie_max, 
opt_db.Quant as qty_default 
FROM my_db, opt_db 
where my_db.NAME2 = '17EM_2' and my_db.name2=opt_db.vs 
group by my_db.number order by my_db.SERIAL_NUMBER 

результат my_db:

+-------------+-------+-------+----------+-----------+-----------+---------+ 
| number | NAME | NAME2 | tot_prod | serie_min | serie_max | default | 
+-------------+-------+-------+----------+-----------+-----------+---------+ 
| 312705  | 17E21 | 7EM_2 |  3 | 21895  | 21897  |  10| 
| 311971  | 17E21 | 7EM_2 |  20 | 21900  | 21920  |  10| 
| 311972  | 17E21 | 7EM_2 |  6 | 21925  | 21930  |  10| 
+-------------+-------+-------+----------+-----------+-----------+---------+ 

Но я хочу это ВЫВОД:

+-------------+-------+-------+-----+-------+----------+----------+--------+ 
| number | NAME | NAME2 | tot | PACK |serie_min |serie_max |default | 
+-------------+-------+-------+-----+-------+----------+----------+--------+ 
| 312705  | 17E21 | 7EM_2 | 3 | 3 | 21895 | 21897 | 10 | 
| 311971  | 17E21 | 7EM_2 | 20 | 10 | 21900 | 21910 | 10 | 
| 311971  | 17E21 | 7EM_2 | 20 | 10 | 21911 | 21920 | 10 | 
| 311972  | 17E21 | 7EM_2 | 6 | 6 | 21925 | 21930 | 10 | 
+-------------+-------+-------+-----+-------+----------+----------+--------+ 
+0

р о чтобы лучше объяснить вашу логику или по крайней мере показать нам образцы данных из этих двух таблиц. –

+0

спасибо, ты прав ... Итак, лучший способ объяснить - показать логику. В одной таблице у меня есть, например, 29 продуктов (число, имя, имя2, serial_number ...), а в другой таблице у меня есть конфигурации ящиков (число (то же самое, что и первая таблица), имя, количество), теперь я хотите заполнить поля с продуктами, но в каждом ящике заполнять только количество продуктов «Х». так как я могу отредактировать свой запрос, чтобы увидеть: для одного и того же продукта сколько ящиков упаковывает их все. (строка: 311971). эта помощь? – Gomez

ответ

0

Solved:

SELECT GROUP_CONCAT(distinct m.SERIAL_NUMBER order by m.SERIAL_NUMBER) as series, 
      m.partnumber, 
      m.NAME, 
      m.NAME2, 
      count(distinct m.id) as tot_prod, 
      min(m.serial_number) as serie_min, 
      max(m.serial_number) as serie_max, 
      e.Quantidade as qty_default, 
      e.qty_faltam 
      FROM my_db as m, op_db as e 
      where m.NAME = 'nameExample' and m.name2=e.name2 and m.partnumber = e.part_num 
      group by m.partnumber order by series 
Смежные вопросы