Serial No Warehouse Issue

I have just noticed that, in a very rare case, Warehouse of Serial No is not same as that reflected in Stock Ledger Entry.

I have the following query in order to display problematic Serial Nos:

select 
  a.name,
  a.warehouse,
  s.warehouse,
  s.item_code
from 
  (select 
    sum(
      ent.actual_qty /
        (LENGTH(TRIM(TRAILING '\n' FROM ent.serial_no)) - 
          LENGTH(REPLACE(TRIM(TRAILING '\n' FROM ent.serial_no), '\n', '')) + 1)) as qty,
    ent.warehouse, 
    serial.name, 
    serial.item_code, 
    ent.voucher_no 
  from `tabStock Ledger Entry` ent, 
       `tabSerial No` serial 
  where 
    ent.serial_no like concat('%',serial.name,'%') 
    and ent.item_code=serial.item_code 
  group by 
    serial.name, warehouse) a, 
  `tabSerial No` s 
where 
  a.name=s.name 
  and a.qty>=1
  and a.warehouse<>s.warehouse

I am having trouble getting to the root cause of this problem. Where should I look, as one of the cases is unbelievable. I have purchased a Serialized Item at Location A via Purchase Invoice (Update Stock Ticked) and it is showing Location B in its Serial No and surprisingly no Material Transfer or Sales Invoice or Delivery Note has been Created for that Unit.