none
Excell İle sql'den veri çeken rapor RRS feed

  • Soru

  • Merhabalar,

    Excell command buton ile sql verilerini bağlayıp butona tıklayarak istediğim raporu almak istiyorum raporum hazır tek sıkıntım kullandığım Erp programında oluşan fatura num excell kopyalayıp o kopyaladığım fatura numaralarının(200-300 tane) raporunu çekmek istiyorum ama her gün fatura sayısı değişiyor doğal olarak belli bir aralık veremiyorum. sorgum aşağıdaki gibidir bunu nasıl düzenleyebilirim. şuan ki haliyle tek tek A1 sütuna giriş yapıp butona tıklıyorum bu işlemi günde 200-300 kere yapmak büyük bir iş yükü bu konuda acilen yardımcı olabilir misiniz ?

    Teşekkürler,


    ALTER PROCEDURE [dbo].[EXCEL_DEPO_PLANLAMA_SEVKİYAT_ADRESLERİ_FATURANO]
    (
    @FATURA_NO AS VARCHAR(20)
    )
    AS

    SELECT CASE WHEN ISNULL(SH.LOGICALREF,-1)='-1' THEN C.LOGICALREF ELSE SH.LOGICALREF END AS SEVK_İD,
    I.FICHENO AS FN, 
    ISNULL(SUM(POCKET),0) AS KOLİ,
    ISNULL(SUM(BRUTKG),0) AS KG,
    ISNULL(SUM(BRUTVOL),0) AS HACİM,
    ISNULL(SUM(S.NETTOTAL+S.VATAMOUNT),0) AS CİRO,
    TARİH AS PLANLAMA_TARİHİ
    FROM LG_014_01_INVOICE I
    INNER JOIN STLN_014 S ON S.INVOICEREF=I.LOGICALREF
    INNER JOIN CLCARD_014 C ON C.LOGICALREF=I.CLIENTREF
    LEFT JOIN
    ( SELECT ENTİD,CONVERT(CHAR(10),PF.TARİH,104) TARİH
    FROM SEMPAOCEAN6.DBO.SİPARİS_FİSİ SF
    INNER JOIN SEMPAOCEAN6.DBO.PLANLAMA_HAREKETİ PH ON PH.SİPARİS_İD=SF.SİPARİS_İD
    INNER JOIN SEMPAOCEAN6.DBO.PLANLAMA_FİSİ PF ON PF.FİS_İD=PH.FİS_İD
    GROUP BY ENTİD,CONVERT(CHAR(10),PF.TARİH,104)
    ) SEMPA ON SEMPA.ENTİD=I.LOGICALREF
    LEFT JOIN LG_014_SHIPINFO SH ON SH.LOGICALREF=I.SHIPINFOREF
    WHERE
    I.FICHENO=@FATURA_NO
    GROUP BY I.FICHENO,CONVERT(CHAR(10),I.DATE_,104),TARİH,C.LOGICALREF,SH.LOGICALREF
    ORDER BY I.FICHENO,CONVERT(CHAR(10),I.DATE_,104)

    GO
    9 Mayıs 2014 Cuma 12:35

Yanıtlar

  • Merhaba GülFidan,

    SP'ni biraz güncelleyebiliriz, yada bu iş için ikinci bir SP yazabiliriz.

    SP'ye fatura numaralarını örneğin ',' veya '|' karakteri ile ayrılmış bir şekilde göndeririz.

    Daha sonra SQL Split metodlarını kullanarak fatura numaralarını bir temp tabloya yazar, SELECT ifadendeki FICHENO eşitliğini IN ifadesi ile değiştirebiliriz.

    Burada bir kaç güncelleme daha gerekebilir ama temel prensibi anlatabildim umarım.

    Raporlamaların için kullanabileğin bir Reporting Services kurulumun varsa eğer ister Excel'e ister PDF vb. ortamlara raporları alabilir, hatta otomatik raporu oluşturup Reporting Services içinden e-posta aracılığı ile ilgili kişilere gönderebilirsin bile


    SQL Server, SQL Server 2012 Denali and T-SQL Tutorials

    • Yanıt Olarak İşaretleyen Özgür Tekbaş 15 Mayıs 2014 Perşembe 12:26
    9 Mayıs 2014 Cuma 12:47