Gün + ay + yil üc ayrı word ise
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Gün + ay + yil üc ayrı word ise
Merhaba
Bir vt deki sql den kayıt sırgulamam gerekiyor.
sorun şu bu vt de tarihler üç ayrı integer tipinde. üç ayrı değişken yani.... diğer vt de 20070301 gibi bir dizi şeklinde. 2. vt de sorun yok. ancak 2. vtdeki tarihi baz alıp 1. vtdeki aynı tarihe gitmem lazım.
Sql yazarken concat yapsam , 1. vt de örnein mart ayı 03 değilde 3 olarak kayıtlı.
tarihim 200731 gibi bir değer üretiyor.
VT DB2. üzerinde ikiside. Bu çevrimleri nasıl yaparım.
Bir vt deki sql den kayıt sırgulamam gerekiyor.
sorun şu bu vt de tarihler üç ayrı integer tipinde. üç ayrı değişken yani.... diğer vt de 20070301 gibi bir dizi şeklinde. 2. vt de sorun yok. ancak 2. vtdeki tarihi baz alıp 1. vtdeki aynı tarihe gitmem lazım.
Sql yazarken concat yapsam , 1. vt de örnein mart ayı 03 değilde 3 olarak kayıtlı.
tarihim 200731 gibi bir değer üretiyor.
VT DB2. üzerinde ikiside. Bu çevrimleri nasıl yaparım.
1. vtde bir şekilde bir yerde gösteriliyordur.
Sanırım onun nasıl gösterildiğine ulaşabilirsin(program dll )karşılaştırabilirsin
Yoksa data yı çevirmen lazım diye düşünüyorum.
Veya alan uzunluğu ile yola çıkarak 200731 şeklinde ise
bunu bölerek
yani uzunluk =6 ise
soldan 4 al /
parça al 1 /
parça al 1
şeklinde fonk oluşturarak çıkan sonucu karşılaştırabilirsin ama
2007121 böle bir değerde ay 1 mi 12 mi, gün 1 mi 21 mi onu anlayamazsın
Karışık bir olay
Sanırım onun nasıl gösterildiğine ulaşabilirsin(program dll )karşılaştırabilirsin
Yoksa data yı çevirmen lazım diye düşünüyorum.
Veya alan uzunluğu ile yola çıkarak 200731 şeklinde ise
bunu bölerek
yani uzunluk =6 ise
soldan 4 al /
parça al 1 /
parça al 1
şeklinde fonk oluşturarak çıkan sonucu karşılaştırabilirsin ama
2007121 böle bir değerde ay 1 mi 12 mi, gün 1 mi 21 mi onu anlayamazsın
Karışık bir olay
Bir kelimenin anlamını öğretsen bile yeter..



Dediğim gibi birinde string 8 diğerinde ise gun, ay , yil integer olarak saklaniyor vt de.conari yazdı:1. vtde bir şekilde bir yerde gösteriliyordur.
Sanırım onun nasıl gösterildiğine ulaşabilirsin(program dll )karşılaştırabilirsin
Yoksa data yı çevirmen lazım diye düşünüyorum.
Veya alan uzunluğu ile yola çıkarak 200731 şeklinde ise
bunu bölerek
yani uzunluk =6 ise
soldan 4 al /
parça al 1 /
parça al 1
şeklinde fonk oluşturarak çıkan sonucu karşılaştırabilirsin ama
2007121 böle bir değerde ay 1 mi 12 mi, gün 1 mi 21 mi onu anlayamazsın
Karışık bir olay
mesela
şeklinde bir sorguyla veriyi düzeltip alabilirsin. Daha sonra view haline getirip alanları birleştirip tekrar word'e dönüştürebilirsin.
Kolay Gelsin
Kod: Tümünü seç
select yilstr=cast(yil as varchar),
aystr=case when length(cast(ay as varchar))=1 then '0'||cast(ay as varchar)
when length(cast(ay as varchar))=2 then cast(ay as varchar),
gunstr=case when length(cast(gun as varchar))=1 then '0'||cast(gun as varchar)
when length(cast(gun as varchar))=2 then cast(gun as varchar)
from tablo
Kolay Gelsin
s.a.
bence en kısa yol
sql e de sen dökersin artık
kolay gelsin.
bence en kısa yol
Kod: Tümünü seç
tarih:=(yıl*10000)+(ay*100)+gun

kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Ben anlayamadım Tarih i bulmak için Sayıya çeviriyoruz galiba
Excel mantıgındaki gibi mi?
@İkut
Pardon ben vt1 de yıl ay gün bu alanlar tek bir field da birleşik yazılı diye düşünmüştüm.
ayrı ayrı ise bunları birleştirmek basit değilmi?
birleştirirken de
gibi bir kod ile 8 haneye getirebilirsin. Yine yanlış anlamadı isem.
Excel mantıgındaki gibi mi?
@İkut
Pardon ben vt1 de yıl ay gün bu alanlar tek bir field da birleşik yazılı diye düşünmüştüm.
ayrı ayrı ise bunları birleştirmek basit değilmi?
birleştirirken de
Kod: Tümünü seç
i :integer;
y:string;
begin
i:=lenght(field.value)
if i =1 then
y:='0'+inttostr(field.value)
Bir kelimenin anlamını öğretsen bile yeter..



sayın bu dediğini daha önce denemiştim.aslangeri yazdı:s.a.
bence en kısa yolsql e de sen dökersin artıkKod: Tümünü seç
tarih:=(yıl*10000)+(ay*100)+gun
![]()
kolay gelsin.
veriler as400 de duruyor ve ben where tarih > yada .= gibi bir koşul verdiğimde odbc driver hata veriyor. sorun burada ...
Hocam bu dediğin delphi tarafında mümkün. ben bunu sql tarafında yapmak istiyorum. böylece bana sadece bir sonuç kümesi dönecek..conari yazdı:Ben anlayamadım Tarih i bulmak için Sayıya çeviriyoruz galiba
Excel mantıgındaki gibi mi?
@İkut
Pardon ben vt1 de yıl ay gün bu alanlar tek bir field da birleşik yazılı diye düşünmüştüm.
ayrı ayrı ise bunları birleştirmek basit değilmi?
birleştirirken de
gibi bir kod ile 8 haneye getirebilirsin. Yine yanlış anlamadı isem.Kod: Tümünü seç
i :integer; y:string; begin i:=lenght(field.value) if i =1 then y:='0'+inttostr(field.value)
DB2 sql de sorun verdi. modifiye vs ettim ama yemedi. delirtecek beni bu kodbgoktas yazdı:meselaşeklinde bir sorguyla veriyi düzeltip alabilirsin. Daha sonra view haline getirip alanları birleştirip tekrar word'e dönüştürebilirsin.Kod: Tümünü seç
select yilstr=cast(yil as varchar), aystr=case when length(cast(ay as varchar))=1 then '0'||cast(ay as varchar) when length(cast(ay as varchar))=2 then cast(ay as varchar), gunstr=case when length(cast(gun as varchar))=1 then '0'||cast(gun as varchar) when length(cast(gun as varchar))=2 then cast(gun as varchar) from tablo
Kolay Gelsin
s.a.
iyide arkadaşım senin tarih tipinde bir alanın yok o yüzden karşılaştırmaları integer olarak yapacaksın.
dediğim şekilde çarptığın zaman integer tarihi elde edebiliyorsun (öyle değilmi?)
gün,ay,yıl şeklinde ayrı tutulan db ye calc alan ekleyip karşılaştırmalarını o alana göre yapabilirsin(kullandığın vt de calc alan varmı bilmiyorum)
birde verdiği hata mesajını ve senin kullanıdğın kodları gönderirsen belki bişeyler çıkartabiliriz.
iyide arkadaşım senin tarih tipinde bir alanın yok o yüzden karşılaştırmaları integer olarak yapacaksın.
dediğim şekilde çarptığın zaman integer tarihi elde edebiliyorsun (öyle değilmi?)
gün,ay,yıl şeklinde ayrı tutulan db ye calc alan ekleyip karşılaştırmalarını o alana göre yapabilirsin(kullandığın vt de calc alan varmı bilmiyorum)
birde verdiği hata mesajını ve senin kullanıdğın kodları gönderirsen belki bişeyler çıkartabiliriz.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Db2'da case in kullanımı benim yazdığım gibi olmayabilir. helpinden bakabilirsin. aynı şekilde cast 'da böyle kullanılmıyor olabilir. Sql server'da sorunsuz çalışıyor bu kodikut yazdı:DB2 sql de sorun verdi. modifiye vs ettim ama yemedi. delirtecek beni bu kodbgoktas yazdı:meselaşeklinde bir sorguyla veriyi düzeltip alabilirsin. Daha sonra view haline getirip alanları birleştirip tekrar word'e dönüştürebilirsin.Kod: Tümünü seç
select yilstr=cast(yil as varchar), aystr=case when length(cast(ay as varchar))=1 then '0'||cast(ay as varchar) when length(cast(ay as varchar))=2 then cast(ay as varchar), gunstr=case when length(cast(gun as varchar))=1 then '0'||cast(gun as varchar) when length(cast(gun as varchar))=2 then cast(gun as varchar) from tablo
Kolay Gelsin
Ve aleykum selam..aslangeri yazdı:s.a.
iyide arkadaşım senin tarih tipinde bir alanın yok o yüzden karşılaştırmaları integer olarak yapacaksın.
dediğim şekilde çarptığın zaman integer tarihi elde edebiliyorsun (öyle değilmi?)
gün,ay,yıl şeklinde ayrı tutulan db ye calc alan ekleyip karşılaştırmalarını o alana göre yapabilirsin(kullandığın vt de calc alan varmı bilmiyorum)
birde verdiği hata mesajını ve senin kullanıdğın kodları gönderirsen belki bişeyler çıkartabiliriz.
hocam burda amaç şu. as/400 de duran 2 vt den bir sorgu ile kaytları çekip göstermek ve istenirse excele atma. dolayısı ile pc tarafında hiç bişi yok.
ben bu kodları kendi yazdığım bir sorgu çalıştırıcıda run ediyorum.
veridğin örnekte kod TAr olsun. tar ='xxxx' yada tar=200022202 gibi rakamsal karşılık kullanıca TAR adında bir kolon yok diyor.. yoksa bu çözüm mükemmel bir çözüm
Kod: Tümünü seç
Integer ile sayı yaptım genede where ile kullanamadım..
IBM iseries Access odbc driver sql0206 - belirlenen çizgilerde TAR kolonu yok diyor