There are 386 Pokémon in Sapphire's Pokédex. Only 381 are needed to get the certificate from the Game Freak employee in Lilycove City: the ones that can be missed are Mew, Chikorita (due to a bug), Celebi, Jirachi, and Deoxys. This page focuses on getting the 382 Pokémon that aren't Mew, Celebi, Jirachi, and Deoxys.
In order to complete the Pokédex in Pokémon Sapphire, you will need access to at minimum a copy of Pokémon LeafGreen, Colosseum, XD, and either Ruby or Emerald.
The following version-exclusive Pokémon have to be traded from another game:
LeafGreen is a required game because Slowpoke's evolutionary line can only be captured in LeafGreen. This means the player has access to all Pokémon that can be obtained in LeafGreen, accounting for most of the Kanto Pokédex and a handful of Johto Pokémon. The following list contains all FireRed exclusives that are not also naturally accessible in Sapphire, and which game they can be obtained in.
The following list contains the locations of all Johto Pokémon that are not obtainable in Sapphire or LeafGreen and were not listed above in the FireRed exclusives.
Several Pokémon are mutually exclusive, meaning that if you get one species, you cannot get at least one other species. The list of mutually exclusive species is below.
Note that only one Sun Stone can be obtained in Sapphire, meaning Pokémon that evolve with the Sun Stone must be evolved in other games.
You will need access to three LeafGreen save files to get all three starters, and three Ruby, Sapphire, and/or Emerald save files to get all three Hoenn starters. You will also need to get two different Fossils among the Ruby, Sapphire, and Emerald save files.
Twelve Pokémon evolve by trading: Alakazam, Machamp, Golem, Gengar, Politoed, Slowking, Kingdra, Steelix, Scizor, Porygon2, Huntail, and Gorebyss. The easiest way to get data for them is to trade them to another game and immediately trade the newly-evolved Pokémon back.
You will need two King's Rocks, one Dragon Scale, two Metal Coats, one Up-Grade, one Deepseatooth, and one Deepseascale to evolve Politoed, Slowking, Kingdra, Steelix, Scizor, Porygon2, Huntail, and Gorebyss. The player can only choose one of the Deepseatooth and Deepseascale per save file, meaning that you will need to collect one item in Sapphire and the other in Ruby/Emerald to get both evolutions.