una possibile soluzione potrebbe essere questa:
codice:
SELECT negozio_npu, negozio_codice, negozio_ragsoc
FROM tesord
INNER JOIN rigord ON rigord_tesord_fk = tesord_id
INNER JOIN articoli ON articolo_npam = rigord_articolo_fk
INNER JOIN st_negozi ON negozio_npu = tesord_de
WHERE tesord_inviato = 1
AND tesord_annullato = 0
AND tesord_tipo = 'O'
AND tesord_de IN(26721,24319,34586,34587,34611,27223,34620,34454,35347)
AND articolo_codice = 'K190-347'
GROUP BY negozio_npu
UNION ALL
SELECT negozio_npu, negozio_codice, negozio_ragsoc
FROM st_negozi
WHERE negozio_npu IN(26721,24319,34586,34587,34611,27223,34620,34454,35347)
AND negozio_npu NOT IN (
SELECT negozio_npu FROM articoli
INNER JOIN rigord ON rigord_articolo_fk = articolo_npam
INNER JOIN tesord ON tesord_id = rigord_tesord_fk
INNER JOIN st_negozi ON negozio_npu = tesord_de
WHERE tesord_inviato = 1
AND tesord_annullato = 0
AND tesord_tipo = 'O'
AND negozio_npu IN(26721,24319,34586,34587,34611,27223,34620,34454,35347)
AND articolo_codice = 'K190-347'
GROUP BY tesord_de
ORDER BY tesord_de
)
ORDER BY negozio_ragsoc
non mi piace granchè, ma è l'unico modo in cui sono riuscito ad ottenere il numero di record "esatto" (nel senso che estraggo tutti i negozi).