Skip to main content

AccessTr.neT


Çapraz Sorgu Hk.

Çapraz Sorgu Hk.

Çözüldü #1
Arkadaşlar Merhaba,

Veri tablosunda yer alan Veri1,veri2,veri3,veri4,veri5 ve veri6 alanlarında hangi hata kodundan kaç tane olduğunu günlük olarak yeni tabloya insert edilmesini istiyorum. Yeni tablodaki alan adları için hata tablosunda ki kodları kullanmasını istiyorum

Bir türlü yapamadım. Bu konuda yardımcı olursanız çok sevinirim.

Saygılarımla,


[Resim: do.php?img=15446]

[Resim: do.php?img=15444]

[Resim: do.php?img=15447]
.rar Örnek.rar (Dosya Boyutu: 18,61 KB | İndirme Sayısı: 4)
Son Düzenleme: 12/10/2023, 17:10, Düzenleyen: snapper.
Cevapla
#2
önce aşağıdaki gibi bir çapraz sorgu oluşturup, adı  xCpr olsun
TRANSFORM Count(xUn.xVeri) AS SayxVeri
SELECT xUn.xTarih, xUn.[Veri Adı]
FROM Hata INNER JOIN (SELECT Int([tarih]) AS xTarih, 'veri1' as [Veri Adı], [veri1] AS xVeri FROM Veri
union All
SELECT Int([tarih]) AS xTarih, 'veri2' as [Veri Adı], [veri2] AS xVeri FROM Veri
union All
SELECT Int([tarih]) AS xTarih, 'veri3' as [Veri Adı], [veri3] AS xVeri FROM Veri
union All
SELECT Int([tarih]) AS xTarih, 'veri4' as [Veri Adı], [veri4] AS xVeri FROM Veri
union All
SELECT Int([tarih]) AS xTarih, 'veri5' as [Veri Adı], [veri5] AS xVeri FROM Veri
union All
SELECT Int([tarih]) AS xTarih, 'veri6' as [Veri Adı], [veri6] AS xVeri FROM Veri
)  AS xUn ON Hata.kod = xUn.xVeri
GROUP BY xUn.xTarih, xUn.[Veri Adı]
PIVOT xUn.xVeri;
sonrada aşağıdaki kodu bir düğmeye atayıp dener misiniz?
Sub xVeriEkle() ' 1, 3, 13, 108, 114, 132, 136, 140
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("xCpr")
   
    For x = 2 To rs.Fields.Count - 1
        xInsFld = xInsFld & ", [" & rs(x).Name & "]"
    Next x

xInsert = " INSERT INTO [Yeni Tablo] ( Tarih, [Veri Adı]" & xInsFld & ") " & _
          " SELECT xTarih, [Veri Adı]" & xInsFld & " " & _
          " FROM xCpr ;"
CurrentDb.Execute xInsert
End Sub
Cevapla
#3
(13/10/2023, 14:23)berduş yazdı: önce aşağıdaki gibi bir çapraz sorgu oluşturup, adı  xCpr olsun
TRANSFORM Count(xUn.xVeri) AS SayxVeri
SELECT xUn.xTarih, xUn.[Veri Adı]
FROM Hata INNER JOIN (SELECT Int([tarih]) AS xTarih, 'veri1' as [Veri Adı], [veri1] AS xVeri FROM Veri
union All
SELECT Int([tarih]) AS xTarih, 'veri2' as [Veri Adı], [veri2] AS xVeri FROM Veri
union All
SELECT Int([tarih]) AS xTarih, 'veri3' as [Veri Adı], [veri3] AS xVeri FROM Veri
union All
SELECT Int([tarih]) AS xTarih, 'veri4' as [Veri Adı], [veri4] AS xVeri FROM Veri
union All
SELECT Int([tarih]) AS xTarih, 'veri5' as [Veri Adı], [veri5] AS xVeri FROM Veri
union All
SELECT Int([tarih]) AS xTarih, 'veri6' as [Veri Adı], [veri6] AS xVeri FROM Veri
)  AS xUn ON Hata.kod = xUn.xVeri
GROUP BY xUn.xTarih, xUn.[Veri Adı]
PIVOT xUn.xVeri;
sonrada aşağıdaki kodu bir düğmeye atayıp dener misiniz?
Sub xVeriEkle() ' 1, 3, 13, 108, 114, 132, 136, 140
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("xCpr")
   
    For x = 2 To rs.Fields.Count - 1
        xInsFld = xInsFld & ", [" & rs(x).Name & "]"
    Next x

xInsert = " INSERT INTO [Yeni Tablo] ( Tarih, [Veri Adı]" & xInsFld & ") " & _
          " SELECT xTarih, [Veri Adı]" & xInsFld & " " & _
          " FROM xCpr ;"
CurrentDb.Execute xInsert
End Sub

Hocam elinize sağlık çok güzel oldu.

Peki çapraz sorguda hata kodlarını satırlara veri adlarını sütunlara alırsam, bunu nasıl yeni tabloya insert edebilirim?

[Resim: do.php?img=15448]
Cevapla
#4
neyi hesaplayıp nereye aktarılacağını tam olarak anlamadım? resimdeki zaten eski tablo, yeni tabloya ne aktarılacak?
not: maalesef 1 ay kadar yokum daha fazla yardımcı olamayacağım
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task