2016-05-10 2 views
0

Ein wenig Hilfe: Ich muss einige Zahlen bis zu einem definierten Wert zählen und gruppieren sie nach ID. Zum Beispiel:
meine Frage:Mysql - Zählen Zeilen standardmäßig bis zu einem definierten Wert und gruppieren sie

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 Ergebnis:

+-------------+-------+-------+----------+-----------+-----------+---------+ 
| 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| 
+-------------+-------+-------+----------+-----------+-----------+---------+ 

Aber ich will diese OUTPUT:

+-------------+-------+-------+-----+-------+----------+----------+--------+ 
| 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

Sie r Bitte erklären Sie Ihre Logik besser oder zeigen Sie uns zumindest Beispieldaten aus den beiden fraglichen Tabellen. –

+0

danke, hast du recht ... Also, der bessere Weg zu erklären ist die Logik zu zeigen. In einer Tabelle habe ich zum Beispiel 29 Produkte (Nummer, Name, Name2, Seriennummer ...) und die andere Tabelle habe ich Konfigurationen von Boxen (Nummer (die gleiche wie die erste Tabelle), Name, Menge), jetzt ich Ich möchte die Boxen mit den Produkten füllen, aber in jeder Box nur "X" Menge der Produkte füllen. also wie kann ich meine Abfrage zu bearbeiten, um zu sehen: für das gleiche Produkt, wie viele Boxen, um sie alle zu packen. (Reihe: 311971). diese Hilfe? – Gomez

Antwort

0

GELÖST:

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 
Verwandte Themen