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