I think that you need to define the Join a bit more specifically, try this;
SELECT p.pname, s.id_Publication, COUNT ( s.id_Publication ) as NUM
FROM SchedLineItems AS s
INNER JOIN Publications AS p ON p.id = s.id_Publication
GROUP BY s.id_Publication
ORDER BY NUM DESC
Typically any non aggregate fields have to be included in your Group by option. Otherwise, what name would be shown for the group.
Try selecting max(p.pname) or min(p.pname).
Also make sure your joining like data types. (i.e. text to text, number to number).
Thanks to you both. The MIN function worked. That makes sense you need to have everything as aggregates. Symetry.