Forum
Merhaba arkadaşlar herkese kolay gelsin.
Aşağıdaki sorgudan gelen sonuçları html formatında mailin içeriğine ekleterek mail gönderebiliyorum fakat ben bu maili excel dosya eki olarak göndermek istiyorum.Sorgu sonucu ne kadar çok gelirse mail o kadar geç açılıyor çünkü.
Konu hakkında bilgisi olan arkadaşlar yardımcı olabilirlerse sevinirim.
declare @sayi int
set @sayi = (
SELECT COUNT (sip_evrakno_seri)
FROM SIPARISLER SIP with (nolock)
LEFT JOIN MV4_SIPARISPLANLAMA PP with (NOLOCK) on PP.siprecno = SIP.sip_RECno and PP.siparistipi = 0
left join MV4_KUTUICERIK K with (nolock) ON PP.recno = toplamarecno
left join MV4_YUKLEME Y with (nolock) ON K.takipno = Y.kutuno
left join STOK_HAREKETLERI with (nolock) ON sth_sip_recid_recno = SIP.sip_RECid_RECno
left join CARI_HESAP_HAREKETLERI with (nolock) ON sth_fat_recid_recno = cha_recid_recno
where
sip_kapat_fl = 0
AND PP.sondurum in (7,8)
AND Y.yuklemetarihi > = CAST (GETDATE () AS dATE)
AND K.rampa like 'K%'
and sip_depono = 1 )
if @sayi > 0
begin
DECLARE @xml NVARCHAR(MAX)
DECLARE @body NVARCHAR(MAX)
SET @xml =
CAST ((
SELECT Distinct
isnull (dbo.Fn_YuklemeTarihibulErenMmx(PP.siprecno),'Yuklenmedi') as 'td','',
sip_evrakno_seri As 'td','',
sip_evrakno_sira As 'td','',
isnull (cha_evrakno_seri,'İrsaliye') as 'td','',
isnull (cha_evrakno_sira,0) 'td','',
sth_evrakno_seri as 'td','' ,sth_evrakno_sira as 'td',''
,
sip_musteri_kod As 'td','',
case PP.sondurum
when 0 then 'Planli'
when 1 then 'Toplaniyor'
when 2 then 'Toplanti'
when 3 then 'Kutulaniyor'
when 4 then 'Kutulandi'
when 5 then 'Faturakesildi'
when 6 then 'Rampada'
when 7 then 'Araçta'
WHEN 8 THEN 'Teslimedildi'
when 9 then 'Eksikbekliyor'
when 10 then 'Toplamaaskiyaalindi'
when 11 then 'ToplamaSirasinda'
when 12 then 'KutulamaAskiyaAlindi'
when 13 then 'KutulamaSirasinda'
when 14 then 'Rampalandi'
when 15 then 'Aracayükleniyor'
when 16 then 'Irsaliyekesiliyor'
when 17 then 'Irsaliyekesildi'
when 18 then 'Transitsiparisbekliyor'
when 19 then 'Rezerve = 19'
when 254 then 'Planlanmamis' end as 'td','' ,
isnull (Y.sofor,'Y.Yapilmadi') aS 'td',''
FROM SIPARISLER SIP with (nolock)
LEFT JOIN MV4_SIPARISPLANLAMA PP with (NOLOCK) on PP.siprecno = SIP.sip_RECno and PP.siparistipi = 0
left join MV4_KUTUICERIK K with (nolock) ON PP.recno = toplamarecno
left join MV4_YUKLEME Y with (nolock) ON K.takipno = Y.kutuno
left join STOK_HAREKETLERI ON sth_sip_recid_recno = SIP.sip_RECid_RECno
left join CARI_HESAP_HAREKETLERI ON sth_fat_recid_recno = cha_recid_recno
where
sip_kapat_fl = 0
AND PP.sondurum in (7,8)
AND Y.yuklemetarihi > = CAST (GETDATE () AS dATE)
AND K.rampa like 'K%'
and sip_depono = 1
group by
K.rampa,
dbo.fn_TemsilciBulEren(sip_musteri_kod),
convert(nvarchar(10),(PP.createtime),120),
dbo.Fn_YuklemeTarihibulErenMmx(PP.siprecno)
,convert(nvarchar(10), (K.rampatarihi),120),
sip_evrakno_seri,
sip_evrakno_sira,
sip_musteri_kod,
PP.sondurum,
PP.createuser,
convert (nvarchar(10),(Y.teslimtarihi),120),
Y.sofor , cha_evrakno_seri,cha_evrakno_sira, sth_evrakno_seri,sth_evrakno_sira
order by 19
FOR XML PATH('tr'), ELEMENTS ) AS nvarchar(MAX))
set @body = '<html>
<body>
<h4>Yüklenen Siparişlerin Detay Raporu </h4>
<table border="1">
<tr>
<th><font size=4>YuklemeSaati</th>
<th><font size=4>SiparisSeri</th>
<th><font size=4>SiparisSira</th>
<th><font size=4>FaturaSeri</th>
<th><font size=4>FaturaSira</th>
<th><font size=4>İrsaliyeSeri</th>
<th><font size=4>İrsaliyeSira</th>
<th><font size=4>MusteriKod</th>
<th><font size=4>Durum</th>
<th><font size=4>Soför</th>
</tr>'
set @body = @body + @xml +'</table></body></html>'+'<font face="Verdana" size="2" color="#333333"><p><br />Thanks,<br />Bilgislem</p><p>'
EXEC msdb.dbo.sp_send_dbmail
@recipients ='[email protected]',
@body = @body,
@body_format ='html',
@subject ='Araçtaki Faturalar',
@profile_name ='eren'
, @importance = 'LOW'
end
go
Selamlar;
Sql reporting servisini kullanmayı düşünebilirsin bence excel konusunda bilgim yok malesef bu ve benzeri raporlamalarda SQL Reporting Services kullanıyorum.
Merhabalar,
illa ki excel'e alıp göndereceksiniz; SSIS de (SQL 2012 de Data Tools) package hazırlayıp belirli flowlar sonucunda istediğin formata çevirip sonunda da mail attırabilirsin veya maili attığın kişi network'de ise excel içerisinde bulunan "Power Query" Add-In kullanabilirsin ve yine Network'de ise Excel'in içinden Data bölümünden SP yi çağırabilirsin.
Kolay gelsin