• Merhaba Ziyaretçi,
    Microsoft 365 Uygulamaları ile ilgili yeni haberler, dikkat çekici konular, ilgi ile takip edeceğiniz yazılar için.

    Abone Olun
  • ESTE - Microsoft Office Eğitimleri

    Yeni yıl Microsoft Office Eğitim planlarınız için bütçenizi oluşturmadan önce ESTE eğitim kalitesi ile tanışın. 🙌
    Kullanıcıların ihtiyacı olan yazılı materyal, dosya ve video kaynağı desteğimiz ile tüm ofis çalışanlarının iş süreçlerini rahatlatacak eğitimler planlayın. 🎯
    Microsoft Office eğitimlerimiz hakkında detaylı bilgi için bize ulaşın.

    👉 Microsoft Office Eğitim Talebi

Yardım Mizan SQL sorgusu-üst hesaplı

Vedat ÖZER

Logo Uzmanı
Geliştirici
Katılım
4 Haz 2018
Mesajlar
288
En iyi yanıt
4
Puanları
63
Yaş
33
Konum
Antalya / Merkez
Ad Soyad
Vedat ÖZER
Office Vers.
2019
SQL:
Dim Baglanti As New ADODB.Connection
    Dim KayitSeti As New ADODB.Recordset
    Dim Firma As String, SERVER As String, Database As String, Kullanıcı As String, Parola As String, DONEM As String, Tutar As String, TUTAR2 As String, Tutar1 As String, tarih1 As String, tarih2 As String

Sub bilanco()
    Firma = Format(Range("g1"), "000"):    SERVER = Range("L1").Value:    Database = Range("L2").Value:    Kullanıcı = Range("L3").Value:    Parola = Range("L4").Value
    Tutar = Range("I1").Value: Tutar1 = Range("I2").Value: tarih1 = Format(Range("G3").Value, "d.M.yyyy"):    tarih2 = Format(Range("G4").Value, "d.M.yyyy")
    TUTAR2 = Range("I3").Value: dijit10 = Range("I4").Value: DONEM = Format(Range("g2"), "00"):
    Range("A7:Z65536").ClearContents
 
Baglanti.Open "Provider=SQLOLEDB; Data Source=" & SERVER & "; Initial Catalog=" & Database & "; User ID=" & Kullanıcı & "; Password=" & Parola & ";"

S = S & "SELECT  EMC.CODE, EMC.DEFINITION_, "
S = S & " Sum (EML.DEBIT), Sum(EML.CREDIT), Sum(EML.DEBIT) - Sum(EML.CREDIT) "
S = S & " FROM   LG_" & Firma & "_" & DONEM & "_EMFLINE EML, "
S = S & "              LG_" & Firma & "_EMUHACC EMC "
'S = S & " WHERE SUBSTRING(EML.ACCOUNTCODE, 0, " & dijit10 & ") = EMC.CODE"
S = S & " WHERE ((LEVEL_ = 0 And SUBSTRING(EML.ACCOUNTCODE, 1, 3) = EMC.CODE) Or (LEVEL_ = 1 And SUBSTRING(EML.ACCOUNTCODE, 1, 6) = EMC.CODE) Or (LEVEL_ = 2 And SUBSTRING(EML.ACCOUNTCODE, 1, 10) = EMC.CODE)) "
S = S & " AND  EML.CANCELLED=0   AND  (EML.DATE_ BETWEEN '" & Convert(VARCHAR, (tarih1), 103) & "' AND '" & Convert(VARCHAR, (tarih2), 103) & "')  "
S = S & " AND EMC.CODE LIKE  '" & Tutar & "%'  AND EMC.DEFINITION_ LIKE  '" & Tutar1 & "%'"
S = S & " GROUP BY EMC.CODE, EMC.DEFINITION_"
S = S & " ORDER BY EMC.CODE"
KayitSeti.Open S, Baglanti
Cells(7, 1).CopyFromRecordset KayitSeti

'y = [A65536].End(xlUp).Row + 1
'Range("F" & y) = "TOPLAM"
'Range("G" & y) = WorksheetFunction.Sum(Range("G7:G" & y))
'Range("H" & y) = WorksheetFunction.Sum(Range("H7:H" & y))

KayitSeti.Close
Baglanti.Close
Set KayitSeti = Nothing
Set Baglanti = Nothing

End Sub
 

enverdersin

Yeni Üye
Katılım
8 Şub 2019
Mesajlar
163
En iyi yanıt
0
Puanları
18
Yaş
45
Konum
istanbul
Ad Soyad
ENVER DERSİN
Vedat bey, çok güzel diyorsunuz da nereye ekleyeceğimi bilemiyorum :) Bu aşağıdaki koda ekleyebilir misiniz? Böyle daha doğru sonuç olacak gibi. Olursa bir dosya paylaşacağım inş.


Kod:
Dim Baglanti As New ADODB.Connection
    Dim KayitSeti As New ADODB.Recordset
    Dim Firma As String, SERVER As String, Database As String, Kullanıcı As String, Parola As String, DONEM As String, Tutar As String, TUTAR2 As String, Tutar1 As String, tarih1 As String, tarih2 As String

Sub bilanco()
    Firma = Format(Range("g1"), "000"):    SERVER = Range("L1").Value:    Database = Range("L2").Value:    Kullanıcı = Range("L3").Value:    Parola = Range("L4").Value
    Tutar = Range("I1").Value: Tutar1 = Range("I2").Value: tarih1 = Format(Range("G3").Value, "d.M.yyyy"):    tarih2 = Format(Range("G4").Value, "d.M.yyyy")
    TUTAR2 = Range("I3").Value: dijit10 = Range("I4").Value: DONEM = Format(Range("g2"), "00"):
    Range("A7:Z65536").ClearContents

Baglanti.Open "Provider=SQLOLEDB; Data Source=" & SERVER & "; Initial Catalog=" & Database & "; User ID=" & Kullanıcı & "; Password=" & Parola & ";"

S = S & "SELECT  EMC.CODE, EMC.DEFINITION_, "
S = S & " Sum (EML.DEBIT), Sum(EML.CREDIT), Sum(EML.DEBIT) - Sum(EML.CREDIT) "
S = S & " FROM   LG_" & Firma & "_" & DONEM & "_EMFLINE.CANCELLED=0, "
S = S & "              LG_" & Firma & "_EMUHACC EMC "
'S = S & " WHERE SUBSTRING(EML.ACCOUNTCODE, 0, " & dijit10 & ") = EMC.CODE"
S = S & " WHERE ((LEVEL_ = 0 And SUBSTRING(EML.ACCOUNTCODE, 1, 3) = EMC.CODE) Or (LEVEL_ = 1 And SUBSTRING(EML.ACCOUNTCODE, 1, 6) = EMC.CODE) Or (LEVEL_ = 2 And SUBSTRING(EML.ACCOUNTCODE, 1, 10) = EMC.CODE)) "
S = S & " AND  (EML.DATE_ BETWEEN '" & Convert(VARCHAR, (tarih1), 103) & "' AND '" & Convert(VARCHAR, (tarih2), 103) & "')  "
S = S & " AND EMC.CODE LIKE  '" & Tutar & "%'  AND EMC.DEFINITION_ LIKE  '" & Tutar1 & "%'"
S = S & " GROUP BY EMC.CODE, EMC.DEFINITION_"
S = S & " ORDER BY EMC.CODE"
KayitSeti.Open S, Baglanti
Cells(7, 1).CopyFromRecordset KayitSeti

'y = [A65536].End(xlUp).Row + 1
'Range("F" & y) = "TOPLAM"
'Range("G" & y) = WorksheetFunction.Sum(Range("G7:G" & y))
'Range("H" & y) = WorksheetFunction.Sum(Range("H7:H" & y))

KayitSeti.Close
Baglanti.Close
Set KayitSeti = Nothing
Set Baglanti = Nothing

End Sub



Vedat Bey elinize sağlık ancak. İptal olan fişleri de dahil ediyor. Geçici ve kurumlar vergisi için iptal olan fişleri dahil etmemesi gerekiyor.
 

Vedat ÖZER

Logo Uzmanı
Geliştirici
Katılım
4 Haz 2018
Mesajlar
288
En iyi yanıt
4
Puanları
63
Yaş
33
Konum
Antalya / Merkez
Ad Soyad
Vedat ÖZER
Office Vers.
2019
Ben kodda gerekli değişlikliği yaptım sizin alıntı yaptığınız kod eski lütfen en eklediğim haliyle deneyin.
 

enverdersin

Yeni Üye
Katılım
8 Şub 2019
Mesajlar
163
En iyi yanıt
0
Puanları
18
Yaş
45
Konum
istanbul
Ad Soyad
ENVER DERSİN
Veda
Ben kodda gerekli değişlikliği yaptım sizin alıntı yaptığınız kod eski lütfen en eklediğim haliyle deneyin.
Veday Bey,zaten sizin düzelttiğiniz kodu ekledim. Ancak iptal olan fişleri de dahil ediyor. Dahil etmemesi gerekiyor. Aşağıdaki dosyada test eder misiniz kendinizde. Dosyada iptal olan fişleri de dahil ediyor.
 

Ekli dosyalar

  • mizan-logo.xlsx
    566.6 KB · Görüntüleme: 9

Vedat ÖZER

Logo Uzmanı
Geliştirici
Katılım
4 Haz 2018
Mesajlar
288
En iyi yanıt
4
Puanları
63
Yaş
33
Konum
Antalya / Merkez
Ad Soyad
Vedat ÖZER
Office Vers.
2019
Dosyanın içinde yazılmış kod yok, aşağıdaki kodu yapıştırıp deneyin.

Kod:
Dim Baglanti As New ADODB.Connection
    Dim KayitSeti As New ADODB.Recordset
    Dim Firma As String, SERVER As String, Database As String, Kullanıcı As String, Parola As String, DONEM As String, Tutar As String, TUTAR2 As String, Tutar1 As String, tarih1 As String, tarih2 As String

Sub bilanco()
    Firma = Format(Range("g1"), "000"):    SERVER = Range("L1").Value:    Database = Range("L2").Value:    Kullanıcı = Range("L3").Value:    Parola = Range("L4").Value
    Tutar = Range("I1").Value: Tutar1 = Range("I2").Value: tarih1 = Format(Range("G3").Value, "d.M.yyyy"):    tarih2 = Format(Range("G4").Value, "d.M.yyyy")
    TUTAR2 = Range("I3").Value: dijit10 = Range("I4").Value: DONEM = Format(Range("g2"), "00"):
    Range("A7:Z65536").ClearContents
 
Baglanti.Open "Provider=SQLOLEDB; Data Source=" & SERVER & "; Initial Catalog=" & Database & "; User ID=" & Kullanıcı & "; Password=" & Parola & ";"

S = S & "SELECT  EMC.CODE, EMC.DEFINITION_, "
S = S & " Sum (EML.DEBIT), Sum(EML.CREDIT), Sum(EML.DEBIT) - Sum(EML.CREDIT) "
S = S & " FROM   LG_" & Firma & "_" & DONEM & "_EMFLINE.CANCELLED=0, "
S = S & "              LG_" & Firma & "_EMUHACC EMC "
'S = S & " WHERE SUBSTRING(EML.ACCOUNTCODE, 0, " & dijit10 & ") = EMC.CODE"
S = S & " WHERE ((LEVEL_ = 0 And SUBSTRING(EML.ACCOUNTCODE, 1, 3) = EMC.CODE) Or (LEVEL_ = 1 And SUBSTRING(EML.ACCOUNTCODE, 1, 6) = EMC.CODE) Or (LEVEL_ = 2 And SUBSTRING(EML.ACCOUNTCODE, 1, 10) = EMC.CODE)) "
S = S & " AND  (EML.DATE_ BETWEEN '" & Convert(VARCHAR, (tarih1), 103) & "' AND '" & Convert(VARCHAR, (tarih2), 103) & "')  "
S = S & " AND EML.CANCELLED=0  AND  EMC.CODE LIKE  '" & Tutar & "%'  AND EMC.DEFINITION_ LIKE  '" & Tutar1 & "%'"
S = S & " GROUP BY EMC.CODE, EMC.DEFINITION_"
S = S & " ORDER BY EMC.CODE"
KayitSeti.Open S, Baglanti
Cells(7, 1).CopyFromRecordset KayitSeti

'y = [A65536].End(xlUp).Row + 1
'Range("F" & y) = "TOPLAM"
'Range("G" & y) = WorksheetFunction.Sum(Range("G7:G" & y))
'Range("H" & y) = WorksheetFunction.Sum(Range("H7:H" & y))

KayitSeti.Close
Baglanti.Close
Set KayitSeti = Nothing
Set Baglanti = Nothing

End Sub
 

enverdersin

Yeni Üye
Katılım
8 Şub 2019
Mesajlar
163
En iyi yanıt
0
Puanları
18
Yaş
45
Konum
istanbul
Ad Soyad
ENVER DERSİN
Vedat bey, zaten dediğiniz gibi yapıştıtıyorum.Ancak. iptal olan fişleri de dikkate almıyor. yukarıda attığım dosyaya siz de yapıştırıp kendinizde deneyebilir misiniz? Olmuyor. veya bir yerde hata yapıyoruz.
 

Ekli dosyalar

  • Mizan Logo.xlsm
    509.9 KB · Görüntüleme: 7

enverdersin

Yeni Üye
Katılım
8 Şub 2019
Mesajlar
163
En iyi yanıt
0
Puanları
18
Yaş
45
Konum
istanbul
Ad Soyad
ENVER DERSİN
Vedat Bey size dosyayı da ekledim. Bu dosyadaki kodlarda iptal olan fişlerinde gelmesinin nedeni nedir?
 

Ekli dosyalar

  • Mizan Logo.xlsm
    509.9 KB · Görüntüleme: 6

Vedat ÖZER

Logo Uzmanı
Geliştirici
Katılım
4 Haz 2018
Mesajlar
288
En iyi yanıt
4
Puanları
63
Yaş
33
Konum
Antalya / Merkez
Ad Soyad
Vedat ÖZER
Office Vers.
2019
Ekteki dosyayı inceleyin.
 

Ekli dosyalar

  • Mizan Logo.xlsm
    37.9 KB · Görüntüleme: 18

enverdersin

Yeni Üye
Katılım
8 Şub 2019
Mesajlar
163
En iyi yanıt
0
Puanları
18
Yaş
45
Konum
istanbul
Ad Soyad
ENVER DERSİN
Ekteki hatayı veriyor bu sefer.
 

Ekli dosyalar

  • Adsız.png
    Adsız.png
    80.5 KB · Görüntüleme: 14

Vedat ÖZER

Logo Uzmanı
Geliştirici
Katılım
4 Haz 2018
Mesajlar
288
En iyi yanıt
4
Puanları
63
Yaş
33
Konum
Antalya / Merkez
Ad Soyad
Vedat ÖZER
Office Vers.
2019
Dosyayı inceleyin..
 

Ekli dosyalar

  • Mizan Logo.xlsm
    39.4 KB · Görüntüleme: 24

enverdersin

Yeni Üye
Katılım
8 Şub 2019
Mesajlar
163
En iyi yanıt
0
Puanları
18
Yaş
45
Konum
istanbul
Ad Soyad
ENVER DERSİN
Dosyayı inceleyin..
vedat bey bu kodda iptal olan fişler gelmiyor. Ancak hesap kodları çok eksik geliyor. Hesap kırımlarından dolayı bir sıkıntı var. diğer koda göre yavaş hesaplıyor ve eksik hesaplıyor. diğer kodda sadece alt kırımları dikkate alıyordu.
 

enverdersin

Yeni Üye
Katılım
8 Şub 2019
Mesajlar
163
En iyi yanıt
0
Puanları
18
Yaş
45
Konum
istanbul
Ad Soyad
ENVER DERSİN
EML.CANCELLED=0 kod hem sorguyu yavaşlatıyor hem de hesp kodlarını ciddi anlamda eksik getiriyor. Test ettim.
 

Vedat ÖZER

Logo Uzmanı
Geliştirici
Katılım
4 Haz 2018
Mesajlar
288
En iyi yanıt
4
Puanları
63
Yaş
33
Konum
Antalya / Merkez
Ad Soyad
Vedat ÖZER
Office Vers.
2019
Yazılan kod üzerinden bu kadar ilerleyebildik , bayiden yeni rapor talep edin yada kendiniz yazabilirsiniz
 

enverdersin

Yeni Üye
Katılım
8 Şub 2019
Mesajlar
163
En iyi yanıt
0
Puanları
18
Yaş
45
Konum
istanbul
Ad Soyad
ENVER DERSİN
Merhaba,

Aşağıdaki sorguyu deneyebilir misiniz.

SQL:
SELECT * FROM
(SELECT
EMUH.CODE "Hesap Kodu",
EMUH.DEFINITION_ "Hesap Açıklaması",
EMUH.EXTNAME "2. Açıklama",
EMUH.SPECODE "Hesap Özel Kodu",
EMUH.CYPHCODE "Hesap Yetki Kodu",
EMUH.UNITS "Hesap Birimi",
EMUH.SUBACCOUNTS "Alt Hesap Sayısı",
EMUH.LEVEL_ "Hesap Seviyesi",
DEBIT2 BORC,
CREDIT2 ALACAK,
DEBIT2-CREDIT2 BAKIYE
FROM
LG_017_EMUHACC EMUH JOIN
(SELECT
GLACC.CODE CODE1,
SUM(GLSUM.DEBIT)AS DEBIT1,
SUM(GLSUM.CREDIT)AS CREDIT1
FROM
LG_017_EMUHACC GLACC LEFT OUTER JOIN   LV_017_01_EMUHTOT GLSUM  ON (GLACC.LOGICALREF  =  GLSUM.ACCOUNTREF)
WHERE
GLSUM.TOTTYPE=1
GROUP BY
GLACC.CODE
)TMP1  ON EMUH.CODE=TMP1.CODE1
JOIN
(SELECT
GLACC.CODE CODE2,
SUM(GLSUM.DEBIT)AS DEBIT2,
SUM(GLSUM.CREDIT)AS CREDIT2
FROM
LG_017_EMUHACC GLACC LEFT OUTER JOIN LV_017_01_EMUHTOT GLSUM  ON (GLACC.LOGICALREF  =  GLSUM.ACCOUNTREF)
WHERE
GLSUM.TOTTYPE=2
GROUP BY
GLACC.CODE
)TMP2
ON EMUH.CODE=TMP2.CODE2) AS TMP
ORDER BY [Hesap Kodu] ASC
Vedat Bey Merhaba, Sizin bu paylaştığınız kodu denedim. Bu koda göre Satış faturalarının %95 civarı gelmiyor. Ne hikmetse bazı bazı carilerdeki satış faturaları borç tarafına yansıyor. Onun haricinden toptan satış faturaları gelmiyor. Size eklediğik ay tarih kriterine göre olan kodu da ekliyorum. Bir bakabilir misiniz?





SELECT * FROM
(SELECT
EMUH.CODE "Hesap Kodu",
EMUH.DEFINITION_ "Hesap Açıklaması",
EMUH.EXTNAME "2. Açıklama",
EMUH.SPECODE "Hesap Özel Kodu",
EMUH.CYPHCODE "Hesap Yetki Kodu",
EMUH.UNITS "Hesap Birimi",
EMUH.SUBACCOUNTS "Alt Hesap Sayısı",
EMUH.LEVEL_ "Hesap Seviyesi",
DEBIT2 BORC,
CREDIT2 ALACAK,
DEBIT2-CREDIT2 BAKIYE
FROM
LG_420_EMUHACC EMUH JOIN
(SELECT
GLACC.CODE CODE1,
SUM(GLSUM.DEBIT)AS DEBIT1,
SUM(GLSUM.CREDIT)AS CREDIT1
FROM
LG_420_EMUHACC GLACC LEFT OUTER JOIN LV_420_23_EMUHTOT GLSUM ON (GLACC.LOGICALREF = GLSUM.ACCOUNTREF)
WHERE
GLSUM.TOTTYPE=1


--AYLAR
AND GLSUM.MONTH_ IN (-1,1,2,3,4,5,6,7,8,9,10,11,12) AND YEAR_=2023
GROUP BY
GLACC.CODE
)TMP1 ON EMUH.CODE=TMP1.CODE1
JOIN
(SELECT
GLACC.CODE CODE2,
SUM(GLSUM.DEBIT)AS DEBIT2,
SUM(GLSUM.CREDIT)AS CREDIT2
FROM
LG_420_EMUHACC GLACC LEFT OUTER JOIN LV_420_23_EMUHTOT GLSUM ON (GLACC.LOGICALREF = GLSUM.ACCOUNTREF)
WHERE
GLSUM.TOTTYPE=2


--AYLAR
AND GLSUM.MONTH_ IN (-1,1,2,3,4,5,6,7,8,9,10,11,12) AND YEAR_=2023
GROUP BY
GLACC.CODE
)TMP2
ON EMUH.CODE=TMP2.CODE2) AS TMP
ORDER BY [Hesap Kodu] ASC
 
Üst Alt