CREATE DEFINER=`root`@`%` PROCEDURE `AylikAlisToplami`(Qilktarih datetime,Qsontarih datetime,QStok varchar(8000),QGrup varchar(8000),QMarka varchar(8000),QCari varchar(8000),QCGrup varchar (8000),QLokasyon varchar(8000))
BEGIN
SET lc_time_names='tr_TR';
Select date_format(a.tarih,'%M-%Y') Aylar,sum(d.tutar_ara*d.doviz_kur) AlisTutari,sum(case when a.belge_tip in (3,7) then d.tutar_ara*d.doviz_kur else 0 end) IadeTutari, sum((d.iskontosuz_tutar-d.tutar_satir)*d.doviz_kur) IndirimTutari, sum(d.kdv_tutar*d.doviz_kur) KdvTutari, count(DISTINCT a.id) IslemSayisi, EXTRACT(YEAR FROM a.tarih) Yıl, EXTRACT(MONTH FROM a.tarih) Ay
From belge a
Join belge_detay d on (a.id = d.belge_id)
Join cari c on (a.cari_id = c.id)
Join cari_grup cg on (cg.id=c.cari_grup_id)
Join tnm_kullanici p on (a.tnm_kullanici_id = p.id)
Join tnm_lokasyon l on (a.tnm_lokasyon_id = l.id)
Join stok s on (d.stok_id = s.id)
Join stok_grup sg on (sg.id=s.stok_grup_id)
join tip_belge tb on (tb.id=a.belge_tip)
Where tb.tip=1
and (d.tarih BETWEEN Qilktarih and QSonTarih)
and ('' IN (QStok) OR FIND_IN_SET(s.id,QStok))
and ('' IN (QGrup) OR FIND_IN_SET(sg.id,QGrup))
and ('' IN (QMarka) OR FIND_IN_SET(s.stok_marka_id,QMarka))
and ('' IN (QCari) OR FIND_IN_SET(c.id,QCari))
and ('' IN (QCGrup) OR FIND_IN_SET(c.cari_grup_id,QCGrup))
and ('' IN (QLokasyon) OR FIND_IN_SET(d.tnm_lokasyon_id,QLokasyon))
Group By date_format(a.tarih,'%M-%Y'), EXTRACT(YEAR FROM a.tarih), EXTRACT(MONTH FROM a.tarih)
Order By 6 Asc, 7 Asc,Ay;
END
Bunun gibi örnek kodlarım mevcut, MSSQL nasıl çevirebilrim mantığı nasıldır yardımcı olabilirmisiniz?
Merhaba
Belirli farklar olsa da genel olarak sorgular aynıdır.
Bu gönderdiğiniz MySQL kodunun MSSQL karşılığı aşağıdaki gibidir:
Select date_format(a.tarih,'-') Aylar,sum(d.tutar_ara*d.doviz_kur) AlisTutari,sum(case when a.belge_tip in (3,7) then d.tutar_ara*d.doviz_kur else 0 end) IadeTutari, sum((d.iskontosuz_tutar-d.tutar_satir)*d.doviz_kur) IndirimTutari, sum(d.kdv_tutar*d.doviz_kur) KdvTutari, count(DISTINCT a.id) IslemSayisi, YEAR(a.tarih) Yıl, MONTH(a.tarih) Ay
From belge a
Join belge_detay d on (a.id = d.belge_id)
Join cari c on (a.cari_id = c.id)
Join cari_grup cg on (cg.id=c.cari_grup_id)
Join tnm_kullanici p on (a.tnm_kullanici_id = p.id)
Join tnm_lokasyon l on (a.tnm_lokasyon_id = l.id)
Join stok s on (d.stok_id = s.id)
Join stok_grup sg on (sg.id=s.stok_grup_id)
join tip_belge tb on (tb.id=a.belge_tip)
Where tb.tip=1
and (d.tarih BETWEEN @Qilktarih and @Qsontarih)
and ('' IN (@QStok) OR dbo.FIND_IN_SET(s.id,@QStok))
and ('' IN (@QGrup) OR dbo.FIND_IN_SET(sg.id,@QGrup))
and ('' IN (@QMarka) OR dbo.FIND_IN_SET(s.stok_marka_id,@QMarka))
and ('' IN (@QCari) OR dbo.FIND_IN_SET(c.id,@QCari))
and ('' IN (@QCGrup) OR dbo.FIND_IN_SET(c.cari_grup_id,@QCGrup))
and ('' IN (@QLokasyon) OR dbo.FIND_IN_SET(d.tnm_lokasyon_id,@QLokasyon))
Group By date_format(a.tarih,'-'), YEAR(a.tarih), MONTH(a.tarih)
Order By 6 Asc, 7 Asc,Ay;
END;
GO