Also versuche ich, die Anzahl der Teile, die Anzahl der Aufgaben, die Menge in jedem Auftrag und die Zeit, die für die Herstellung jedes Auftrags benötigt wurde, zu zählen, aber ich bekomme einige seltsame Ergebnisse. Wenn ich das ausführe:
SELECT
j.id,
mf.special_instructions,
count(distinct p.id) as number_of_different_parts,
count(distinct t.id) as number_of_tasks,
SUM(distinct j.quantity) as number_of_assemblies,
SUM(l.time_elapsed) as time_elapsed
FROM
sugarcrm2.mf_job mf
INNER JOIN ramses.jobs j on
mf.id = j.mf_job_id
INNER JOIN ramses.parts p on
j.id = p.job_id
INNER JOIN ramses.tasks t on
p.id = t.part_id
INNER JOIN ramses.batch_log l on
t.batch_id = l.batch_id
WHERE
mf.job_description LIKE "%BACKBLAZE%" OR
mf.customer_name LIKE "%BACKBLAZE%" OR
mf.customer_ref LIKE "%BACKBLAZE%" OR
mf.technical_company_name LIKE "%BACKBLAZE%" OR
mf.description LIKE "%BACKBLAZE%" OR
mf.name LIKE "%BACKBLAZE%" OR
mf.enclosure_style LIKE "%BACKBLAZE%" OR
mf.special_instructions LIKE "%BACKBLAZE%"
Group by j.id
und jetzt erhalte ich genaue Teile- und Aufgabennummern, aber die Summe der verstrichenen Zeit stimmt nicht. Was könnte das Problem sein?
Wenn ich es mit distinct
versuche, erhalte ich eine seeehr niedrige Zahl (etwas zwischen 1 und 30, wenn ich etwas näher an 10.000 suche.)
UPDATE: Hier ist der Erstellungscode:
Die Beziehungen sind wie folgt:
- mf_job-Informationen sind mit einem Auftrag verknüpft
- Aufträge haben Teile
- Teile haben Aufgaben
- Aufgaben sind in Chargen
- batch_log ist eine Tabelle mit allen Start- und Stopps für die Chargen von Aufgaben, sie hat eine Startzeit und eine Endzeit und eine verstrichene Zeit.
Ich versuche, alle verstrichene Zeit aus dem batch_log für jedes mf_job mit dem Wort backblaze in einem seiner Felder sowie die Anzahl der Teile, Aufgaben und Baugruppen zu erhalten. Dies muss alles nach job.id oder mf_job.id gruppiert werden.