Refering to this and this:
you could do:
select shopid
,shopname
,shoppostcode
,orderid
,customerpostcode
,acos(sin(s.lat)
*sin(radians(o.lat))
+cos(radians(s.lat))
*cos(radians(o.lat))
*cos(radians(o.long)
-radians(s.long)
)
)
*3963.1676
as orderdistance
from shop as s
inner join orders as o
on o.shopid=s.shopid
where o.Orderdate>='2015-12-01 00:00:00'
and o.Orderdate<'2016-01-01 00:00:00'
and o.status in (2,3,11,12)
;