• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

sql serverdan crosstab query yaratmak

Rica ederim, iyi çalışmalar.
 
Bir şey daha srucam nu konuyla ilgisi yok ama varsa bununla ilgili bir konu beni yönlendirirseniz sevinirim :)

Ben exceldeki datalarımı vba kodu ile accesse aktarmak istiyorum.bunu nasıl yapabilirim?
 
Tabii ki yapabilirsiniz. Bunun için, access tablonuzun veri tiplerini bilmeniz ve biraz da kod bilgisine sahip olmanız gereklidir.
 
Private Sub DLZ_Table_Click()

Dim filepath As String
filepath = "C:\Users\Desktop\abcdef.xlsx"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "DLZTableUpdate(trial)", filepath, True, "A1:Q587"

End Sub

Bu kodu denedim ama istediğim rangi alıp seçmedi.accesste 2 satır doldurdu sadece onlar da karmakarışık
 
İşin bu kısmında access'le yoğun ilgilenen arkadaşlar yardımcı olabilir. Ya da döngü ile her satır için "insert" komutu aracılığıyla atılabilir.
 
çok teşekkür ederim

No,
SUM(CASE WHEN [FNA] = '23' THEN CAST(working_days AS Numeric(10)) END) AS [23],
SUM(CASE WHEN [FNA] = '28' THEN CAST(working_days AS Numeric(10)) END) AS [28],
SUM(CASE WHEN [FNA] = '29' THEN CAST(working_days AS Numeric(10)) END) AS [29],
convert( varchar, max(dates), 104) as DATES
FROM dbo.DLZ__tbl
where working_days>0
GROUP BY DS_No
having SUM(CASE WHEN FNA = '23' THEN CAST(working_days AS Numeric(10)) END) is not null
and SUM(CASE WHEN FNA = '28' THEN CAST(working_days AS Numeric(10)) END) is not null
and SUM(CASE WHEN FNA = '29' THEN CAST(working_days AS Numeric(10)) END) is not null

nihai kodum böyle.Ben bir de userın girdiği yani update edilen tarihi göstermek istiyorum.Onun için de SELECT GETDATE() AS updated_dates dedim.Kod çalışıyor ama 2 Select atamak istemiyorum.Select siz nasıl yapabilirim bunu?
 
Merhaba,
sorunuzu tam anlayamadım. Ben oracle üzerinde çalışıyorum. Tablolarda, eğer kod ile yazılmamışsa update tarihi yazmaz. Sql server için böyle bir özellik var mıdır bilmiyorum.
Kolay gelsin.
 
Merhaba,
sorunuzu tam anlayamadım. Ben oracle üzerinde çalışıyorum. Tablolarda, eğer kod ile yazılmamışsa update tarihi yazmaz. Sql server için böyle bir özellik var mıdır bilmiyorum.
Kolay gelsin.


merhaba
Update tarihi de yazılsın istiyorum ve bunun kodu da var aslında yukarıda belirttiğim gibi ama select atıyor ben onu istemiyorum sadece.
 
Yukarıda yazdığımız sorgu ile gelmesini istiyorsunuz? ayrıca "getdate()" ifadesi sanırım sistem tarihini getiriyor.
 
merhaba benim gene bir sorum var :)

SELECT
DS_No,
SUM(CASE WHEN [FNA] = '23' THEN CAST(working_days AS Numeric(10)) END) AS [23],
SUM(CASE WHEN [FNA] = '28' THEN CAST(working_days AS Numeric(10)) END) AS [28],
SUM(CASE WHEN [FNA] = '29' THEN CAST(working_days AS Numeric(10)) END) AS [29],
convert( varchar, max(dates), 104) as DATES
FROM dbo.DLZ__tbl
GROUP BY DS_No
having SUM(CASE WHEN FNA = '23' THEN CAST(working_days AS Numeric(10)) END) is not null
and SUM(CASE WHEN FNA = '28' THEN CAST(working_days AS Numeric(10)) END) is not null
and SUM(CASE WHEN FNA = '29' THEN CAST(working_days AS Numeric(10)) END) is not null

Bunu sorgulattığımda DS_No 23 28 29 DATES olarak 5 sütunda sonuçları veriyor.bu tamamdır.

ama tarihleri sırasıyla vermiyor.Ben tarihe göre sıralamak istiyorum ne yapmam gerek?
örnek olarak son kısımdan bir görüntü sunuyorum:
DS-xxxxxx 0 23 3 23.05.2014
DS-xxxxxx 5 23 5 05.06.2014
DS-xxxxxx 0 3 2 23.05.2014
DS-xxxxxx 0 2 3 23.05.2014
DS-xxxxxx 0 5 0 23.05.2014
DS-xxxxxx 0 2 3 23.05.2014
DS-xxxxxx 0 11 0 10.06.2014
DS-xxxxxx 7 13 2 26.06.2014

gördüğünüz gibi haziran ve mayıs iç içe.

formatlar:

DS_No nvarchar(50)
FNA smallint
working_days smallint
dates datetime

teşekkürler
 
bir de bir sorum daha var.bu ayları sıraladıktan sonra cumulative sum yaparak son 3 aylık 23 28 ve 29 iş paketlerini toplamak istiyorum.

yani haziran mayıs ve nisanı toplasın.bana haziran olarak göstersin
mayıs nisan martı toplasın bana mayıs olarak versin.

bu şekilde nasıl yapabilirim?
 
merhaba benim gene bir sorum var :)
ama tarihleri sırasıyla vermiyor.Ben tarihe göre sıralamak istiyorum ne yapmam gerek?

Sorgunun en sonuna
Kod:
order by DATES
ekleyiniz. Datanızın bir kısmını excel'e export edip ve Ds_no alanlarını değiştirerek yüklerseniz çözüm bulmamız daha kolay olacaktır.
 
teşekkürler
ekledim ama sıralamayı yıl-ay-gün olarak yapması gerekirken tam ters olarak günlere göre sıralamış.
DS-336259 23 0 7 01.08.2013
DS-336492 17 4 7 01.08.2013
DS-337815 13 0 2 01.08.2013
DS-xxxxxx 26 0 8 02.04.2013
DS-xxxxxx 29 1 25 02.05.2013
DS-xxxxxx 19 0 0 02.07.2013
DS-xxxxxx 19 0 0 02.07.2013
DS-xxxxxx 46 0 0 03.05.2013
DS-xxxxxx 28 5 12 03.10.2013

bunun gibi
 
teşekkürler
ekledim ama sıralamayı yıl-ay-gün olarak yapması gerekirken tam ters olarak günlere göre sıralamış.
DS-336259 23 0 7 01.08.2013
DS-336492 17 4 7 01.08.2013
DS-337815 13 0 2 01.08.2013
DS-xxxxxx 26 0 8 02.04.2013
DS-xxxxxx 29 1 25 02.05.2013
DS-xxxxxx 19 0 0 02.07.2013
DS-xxxxxx 19 0 0 02.07.2013
DS-xxxxxx 46 0 0 03.05.2013
DS-xxxxxx 28 5 12 03.10.2013

bunun gibi



bu sorunu hallettim ilk kodda convert vardı albuki ben değerleri datetime yapmıştım onu silip max(date) dedğimde tam sıralamayı verdi ama tarihin yanına 00:00:00.000 gibi şeyler gelsdi bu sefer de

DS-xxxxxx 0 2 3 2014-05-23 00:00:00.000
DS-xxxxxx 0 5 0 2014-05-23 00:00:00.000
DS-xxxxxx 0 2 3 2014-05-23 00:00:00.000
DS-xxxxxx 2 23 12 2014-06-04 00:00:00.000

gibi. onları nasıl yok edebilirim?
 
bir de bir sorum daha var.bu ayları sıraladıktan sonra cumulative sum yaparak son 3 aylık 23 28 ve 29 iş paketlerini toplamak istiyorum.

yani haziran mayıs ve nisanı toplasın.bana haziran olarak göstersin
mayıs nisan martı toplasın bana mayıs olarak versin.

bu şekilde nasıl yapabilirim?


merhaba,
diğerleri önemli değil de daha çok bunu halletmek istiyorum.

moving average kodunu buldum ama nasıl uygulayacağımı anlayamadım.yardımcı olursanız çok sevinirim
 
Geri
Üst