I'd be looking at tracing the route between the two networks that dont work - ie, its obvious when you're on the same network, but when you're on a different network, there's nothing to say 'to get from network a (eg 'another wifi or phone) to network b (the one where sql server is running on the laptop), you need to go this way'
this is the first part you need
https://support.microsoft.com/en-us/kb/314868[
^]
you 'may' be able to do a 'route add' on your pc to add the missing information - it may also be more complicated than that - ie, if the sql server machine & network is behind a firewall, do you have a 'public address' NAT'd to it ?
[edit - Im trying to post this here because as a comment it doesnt render well]
this really depends on what network infrastructure you have/know about - for instance
private/internal network |firewall| DMZ |firewall| public network OR
private/internal network |firewall| public network
in both case's, if you're 'out' in the public network on the right hand side, and need to see a machine in the private/internal network, you may need (looking at the simpler case)
private/internal network |firewall | public network
--------------------------------------------------------------------------------------
server with | Firewall Rules | public address
Tcp/ip address | and Network Address Translates|
a.b.c.d | eg public address e.f.g.h goes to |
| a.b.c.d internally |
[edit : I cant draw this properly here :-( ]