Число записей в workers как и повторяющихся (с разными датами) в position непостоянно, так не выйдет, к тому же хотелось бы иметь возможность сортировать так как будет удобно пользователю.
Приблизительно так выбираются данные в оригинале (возможно так будет проще объяснить)
Код:
SELECT tmc.inv_num,
p.name AS position,
w.fname,
w.lname,
p.tn,
m.name AS model
FROM tmc
LEFT JOIN doc_work dw ON tmc.id = dw.tmc and dw.frm = -1 (вот тут выбираются лишние строки, нужно только с самим большим значением dw.date)
LEFT JOIN workers w ON dw.rcpt = w.id
LEFT JOIN position p ON w.position = p.n
LEFT JOIN model m ON tmc.model = m.n and tmc.type = m.type
WHERE tmc.type = 1
ORDER BY 1