AccessTr.neT

Tam Versiyon: Çapraz Sorgu Hk.
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
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]
ö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
(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]
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