Perdona cadetill, pero antes no terminé de explicarme bien.
El problema ocurría cuando ponía lo siguiente:
.......
.....
where codempresa = 'xxxxxxxxx'
and tparticulo = 'mercancia'
and tparticulo = 'sustitucion'
lo he solucionado con el operador lógico (or)
.......
.....
where codempresa = 'xxxxxxxxxx'
and tparticulo = 'mercancia'
or tparticulo = 'sustitucion'
perdonad no me hubiera explicado bien.
descendents gracias por tu contestación, voy a probarla.
gracias a todos.