I have attempted a query that I think works. Any comments welcome
SELECT TAXON_DETERMINATION.TAXON_OCCURRENCE_KEY, INDEX_TAXON_NAME.ACTUAL_NAME AS AN, INDEX_TAXON_NAME.COMMON_NAME,
INDEX_TAXON_NAME.PREFERRED_NAME, LEFT(INDEX_TAXON_NAME.PREFERRED_NAME, CHARINDEX(' ', INDEX_TAXON_NAME.ACTUAL_NAME)) AS 'LA',
LEFT(INDEX_TAXON_NAME.COMMON_NAME, CHARINDEX(' ', INDEX_TAXON_NAME.COMMON_NAME)) AS 'LC', RIGHT(INDEX_TAXON_NAME.PREFERRED_NAME,
LEN(INDEX_TAXON_NAME.PREFERRED_NAME) - CHARINDEX(' ', INDEX_TAXON_NAME.PREFERRED_NAME)) AS 'RA', RIGHT(INDEX_TAXON_NAME.COMMON_NAME,
LEN(INDEX_TAXON_NAME.COMMON_NAME) - CHARINDEX(' ', INDEX_TAXON_NAME.COMMON_NAME)) AS 'RC'
FROM TAXON_DETERMINATION INNER JOIN
INDEX_TAXON_NAME ON TAXON_DETERMINATION.TAXON_LIST_ITEM_KEY = INDEX_TAXON_NAME.TAXON_LIST_ITEM_KEY
WHERE LEFT(INDEX_TAXON_NAME.PREFERRED_NAME,charindex(' ',INDEX_TAXON_NAME.PREFERRED_NAME))=LEFT(INDEX_TAXON_NAME.COMMON_NAME,charindex(' ',INDEX_TAXON_NAME.COMMON_NAME))
AND RIGHT (INDEX_TAXON_NAME.PREFERRED_NAME,(LEN(INDEX_TAXON_NAME.COMMON_NAME)-charindex(' ',INDEX_TAXON_NAME.COMMON_NAME)))<> RIGHT(INDEX_TAXON_NAME.COMMON_NAME,(LEN(INDEX_TAXON_NAME.COMMON_NAME)-charindex(' ',INDEX_TAXON_NAME.COMMON_NAME)))
and LEFT(INDEX_TAXON_NAME.PREFERRED_NAME,charindex(' ',INDEX_TAXON_NAME.PREFERRED_NAME))<>''
order by AN
Gordon Barker
Biological Survey Data Manager
National Trust