DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Haluk Beyin müsadesiyle iki sorgusunun birleştirilmiş hali ve PQ çözümü
Sub getReport2()
' Veysel Emre 14/03/2024
' Alternatif kod
Dim objConn As Object, RS As Object, SQLdata As String, strSQL As String, strArgs As String
Sheets("Report").Range("A2:F" & Rows.Count).ClearContents
Set objConn = CreateObject("ADODB.Connection")
strArgs = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}; Readonly=False; DBQ=" & ThisWorkbook.FullName
objConn.Open strArgs
SQLdata = " Select [STOKKODU] AS SK, [MALINCINSI] AS MC, [URUN KATEGORI] AS UK, [URUN GRUPLARI] AS UG, Sum([NETCIKIS]) AS NC, 2023 As Year" & _
" From [2023$] Where [STOKKODU] Is Not Null " & _
" Group By [STOKKODU], [MALINCINSI], [URUN KATEGORI], [URUN GRUPLARI] " & _
" Union All " & _
" Select [STOKKODU] AS SK, [MALINCINSI] AS MC, [URUN KATEGORI] AS UK, [URUN GRUPLARI] AS UG, Sum([NETCIKIS]) AS NC, 2024 As Year" & _
" From [2024$] Where [STOKKODU] Is Not Null" & _
" Group By [STOKKODU], [MALINCINSI], [URUN KATEGORI], [URUN GRUPLARI]"
strSQL = " Select SK, MC, UK, UG, Sum([NC2023]), Sum([NC2024]) From " & _
" ( " & _
" Select SK, MC, UK, UG, IIF(Year= 2023, NC) AS [NC2023], IIF(Year= 2024, NC) AS [NC2024] From " & _
" ( " & _
SQLdata & _
" )" & _
" )" & _
" Group By SK, MC, UK, UG"
Set RS = objConn.Execute(strSQL)
Sheets("Report").Range("A2").CopyFromRecordset RS
objConn.Close
Set objConn = Nothing
End Sub
Alternatif icin Veysel Beyin eline saglik, ben sadece araciyim.... ?
Sub getData3()
Sheets("Report").Range("A2:F" & Rows.Count).ClearContents
With CreateObject("ADODB.Connection")
.Open "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}; Readonly=False; DBQ=" & ThisWorkbook.FullName
Sheets("Report").Range("A2").CopyFromRecordset .Execute( _
" SELECT SK, MC, UK, UG, SUM(NC2023) AS NC23, SUM(NC2024) AS NC24 FROM " & _
" ( SELECT STOKKODU AS SK, MALINCINSI AS MC, [URUN KATEGORI] AS UK, [URUN GRUPLARI] AS UG, NETCIKIS AS NC2023, 0 AS NC2024" & _
" FROM [2023$] WHERE STOKKODU IS NOT NULL " & _
" UNION ALL " & _
" SELECT STOKKODU AS SK, MALINCINSI AS MC, [URUN KATEGORI] AS UK, [URUN GRUPLARI] AS UG, 0 AS NC2023, NETCIKIS AS NC2024" & _
" FROM [2024$] WHERE STOKKODU IS NOT NULL " & _
" ) GROUP BY SK, MC, UK, UG ")
.Close
End With
End Sub
..... Zaten SQL de gelecekte pek kullanılmayacak gibi. Sadece eskiye bağımlılıktan kullanılıyor. Bu konuda geliştirme yapan yok.....
Bence yanılıyorsunuz... Kaynak var mı?
Her database sisteminin kendi dil takımına ihtiyacı vardır ve olmak zorundadır. Bunları low-level native code gibi düşünün. Bir de basit kullanıcılar için, native code ile zor gelen işleri no-code veya high-level kodlama kullanan Power Query vs var. Sanırım kastettiğiniz bu...
Aslında bu kadar çok yazmayacaktım ama, SQL sever biri olarak, cümlelerinizi düzeltme gereği duydum.
.