Go to the veilstone gym and beat maylene.
The game corner in vielstone city.
south of vielstone
in vielstone city (were the fighting type gym is)
the ones in maylenes gym.(vielstone city)
There is a small one in Eterna City and a big one in Vielstone City.
On Pokemon Diamond, Pearl and Platinum you can buy solar beam at the vielstone department store, third floor. I think it costs 7500
Just the way between Vielstone (3rd Gym) to Pastoria(4th Gym)
You can find 1 in the ruin manic cave near vielstone. you will really have to look thouht - pokeman
hippopatos is in the maniac caveon the rout were right below vielstone city and right above valor lakefront.
In vielstone city. By the gym, there are two houses. Go to the one on the left. The massage lady is in there. Talk to her.
Feed it medicine (Iron, Calcium, etc..), make it win battles, give it a massage in Vielstone city.
Go to Vielstone City with a spare spot in your party and go to one of the houses behind the Poke centre. A man will give you Porygon.