-- Database schema
| height_info : height_id [ INTEGER ] primary_key , height_in_cm [ INTEGER ] , height_in_inch [ TEXT ] | weight_info : weight_id [ INTEGER ] primary_key , weight_in_kg [ INTEGER ] , weight_in_lbs [ INTEGER ] | PlayerInfo : ELITEID [ INTEGER ] primary_key , PlayerName [ TEXT ] , birthdate [ TEXT ] , birthyear [ DATE ] , birthmonth [ INTEGER ] , birthday [ INTEGER ] , birthplace [ TEXT ] , nation [ TEXT ] , height [ INTEGER ] PlayerInfo.height = height_info.height_id , weight [ INTEGER ] PlayerInfo.weight = weight_info.weight_id , position_info [ TEXT ] , shoots [ TEXT ] , draftyear [ INTEGER ] , draftround [ INTEGER ] , overall [ INTEGER ] , overallby [ TEXT ] , CSS_rank [ INTEGER ] , sum_7yr_GP [ INTEGER ] , sum_7yr_TOI [ INTEGER ] , GP_greater_than_0 [ TEXT ] | SeasonStatus : ELITEID [ INTEGER ] SeasonStatus.ELITEID = PlayerInfo.ELITEID , SEASON [ TEXT ] , TEAM [ TEXT ] , LEAGUE [ TEXT ] , GAMETYPE [ TEXT ] , GP [ INTEGER ] , G [ INTEGER ] , A [ INTEGER ] , P [ INTEGER ] , PIM [ INTEGER ] , PLUSMINUS [ INTEGER ] |
-- -- Among the players whose total NHL games played in their first 7 years of NHL career is no less than 500, what is the name of the player who committed the most rule violations?

SELECT T1.PlayerName FROM PlayerInfo AS T1 INNER JOIN SeasonStatus AS T2 ON T1.ELITEID = T2.ELITEID WHERE T1.sum_7yr_GP > 500 ORDER BY T2.PIM DESC LIMIT 1;