Orjinal görüntüsü bu

buda benim sorgumla gelen sonuç



Sorgu yapım :
                           SELECT DISTINCT 
    H.HareketID,
    CASE
        WHEN H.DurumHareketTipi = 2 THEN Hs.AdiSoyadi
        WHEN H.DurumHareketTipi = 1 THEN S.AdiSoyadi
        WHEN H.DurumHareketTipi = 11 THEN OK.OkulAdi
        WHEN H.DurumHareketTipi = 3 THEN A.Plaka
        WHEN H.DurumHareketTipi = 12 THEN FI.FirmaAdi + '-' + AA.Plaka
        ELSE 'Bilinmeyen Kaynak'
    END AS KaynakBilgisi,
    G.GiderTipi,
    H.Miktar,
    O.OdemeSekli,
    H.Tarih 
FROM Hareketler H
LEFT JOIN GiderTipleri G ON H.DurumHareketTipi = G.GiderTipID 
LEFT JOIN OdemeSekilleri O ON O.OdemeSekilID = H.OdemeTipi
LEFT JOIN HostesOdemeDurumu HO ON HO.OdemeID = H.KaynakID AND H.DurumHareketTipi = 2
LEFT JOIN Hostesler Hs ON HS.HostesID = HO.HostesID
LEFT JOIN SoforOdemeDurumu SO ON SO.SoforOdemeID = H.KaynakID AND H.DurumHareketTipi = 1
LEFT JOIN Soforler S ON S.SoforID = SO.SoforID
LEFT JOIN OkulOdemeDurumu OO ON OO.OkulOdemeID = H.KaynakID AND H.DurumHareketTipi = 11
LEFT JOIN Okullar OK ON OK.OkulID = OO.OkulID
LEFT JOIN Bakim B ON B.BakimID = H.KaynakID AND H.DurumHareketTipi = 3
LEFT JOIN Araclar A ON A.AracID = B.AracID
LEFT JOIN FirmaOdemeDurumu FO ON FO.FirmaOdemeID = H.KaynakID AND H.DurumHareketTipi = 12
LEFT JOIN Firmalar FI ON FI.FirmaID = FO.FirmaID
LEFT JOIN Araclar AA ON AA.FirmaID = FO.FirmaID
WHERE H.HareketTipi = 'Gider'
şimdi sorum şu. ben durumharekettiplerine bakarak kaynakıd karşılığına göre farklı farklı tablolardan veriler getirmesini istiyorum yukarıdaki tabloda oldugu gibi.

Firma ile ilgili bir durumsa Firma tablosundan firma adını
Okul ile ilgili bir durumsa Okul tablosundan okul adını gibi

DurumHareketTipi sabit bu sekilde rakamlar yazmak istemiyorum cünkü gider kalemleri değişebilir. soruyu size sorarken bile saçmalamış olabilirim .

maksadım durmharekettipine bakarak gitmesi gereken tablolar olacak