You can't reference an alias in the where clause like that.
The usual method is to use the actual table column names in the
where clause. Though I would probably convert the value to a valid
date or datetime object, assuming the legacy database supports
them.
WHERE ADINFO_PUBLICATIONDATE_YEAR+ '-' +
ADINFO_PUBLICATIONDATE_MONTH + '-01' ....etc.
Another option is to use a derived table, if your db supports
them
SELECT t.AdINFO_Publication, t.PubYear
FROM
(
SELECT AdINFO_Publication,
ADINFO_PUBLICATIONDATE_YEAR+ '-' +
ADINFO_PUBLICATIONDATE_MONTH + '-01' AS PubYear
FROM crAdInfo
) AS t
WHERE t.PubYear BETWEEN ....start date... AND ....other
date...
Failing that, you could also try using a query of queries as
amers suggested.