SQL sorgulama Sorunu

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

SQL sorgulama Sorunu

Mesaj gönderen yusuf »

selam arkadaşlar forma iki adet Grid yerleştirdim 1 adet Query yerleştirdim
fieldlerim
tarih
satılan mallar
satılmayan mallar
vb.
bir adet
de takvim yerleştirdim tarihi tıkladıgımda
mesela 20.11.2005 tarihinde satılan mallar
birinci grid de listelensin
20.11.2005 tarihinde satılmayan mallarda
ikinci gridde listelensin
yardımlarınız için şimdiden teşekkürler
ASE
Kıdemli Üye
Mesajlar: 518
Kayıt: 28 Ağu 2003 03:17
Konum: samsun
İletişim:

Mesaj gönderen ASE »

Kod: Tümünü seç

quey1.sql.add('select * from tablo where tarih = 20.11.2005 and durum 'satıldı''')

Kod: Tümünü seç

quey1.sql.add('select * from tablo where tarih = 20.11.2005 and durum 'satılmadı''')
gibi bişeyler olacak. ' işaretlerine dikkat et. delphi olmadan ve datastini bilmeden yazdım o yüzden hata olabilir ama mantık bu genel olarak. Kolay gelsin.
Allah'ım!...
Yol boyunca bırakma elimi...
Düşerim sonra...


ASE YAZILIM
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

slm...

Bunun için iki tane query kullan queryleri ayrı ayrı gridlere bağla...
Seçtiğin tarihe eşit olan kayıtlar...

Kod: Tümünü seç

with Query1 do 
begin
  Close; 
   SQL.Clear;
   Sql.Add('select * from tablo where tarih=:tarih');
   ParamByName('tarih').Asdate :=DatetimePicker1.Date;
    Prepare;
   Open;
end;
Seçtiğin tarihe eşit olmayan kayıtlar...

Kod: Tümünü seç

with Query2 do //
begin
  Close; 
   SQL.Clear;
   Sql.Add('select * from tablo where tarih<>:tarih');
   ParamByName('tarih').Asdate :=DatetimePicker1.Date;
   Prepare;
   Open;
end;
iyi günler...
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Mesaj gönderen yusuf »

ilginiz için teşekkür ederim arkadaşlar fakt tam konuyu anlatamadım herhalde. aşşağıdaki kot yakın oldugunu düşünüyorum ama şimdi tarihi seçtiğimde birinci grid de satılan mallar görüldü diyelim ikinci grid de satılmayanları nasıl göstereceğim aynı anda grid ler aynı form üzerinde 2 adet Query kullanıyorum birincide satılan mallar ikincide satılan malları aynı anda nasıl gösteririm


with Query1 do
begin
Close;
SQL.Clear;
Sql.Add('select * from tablo where tarih=:tarih');
ParamByName('tarih').Asdate :=DatetimePicker1.Date;
Prepare;
Open;
end;
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Mesaj gönderen yusuf »

ben şöyle birşey denedim fakat yalnız satılanları gösteriyor

procedure TAnaform.PlannerCalendar1DateChange(Sender: TObject; origDate,
newDate: TDateTime);
var
Tarih:String;
begin
Tarih := Copy(DateToStr(PlannerCalendar1.Date),7,4) + '.' + Copy(DateToStr(PlannerCalendar1.Date),4,2) + '.' + Copy(DateToStr(PlannerCalendar1.Date),1,2);
With Data.satısQry do
begin
Close;
UnPrepare;
Sql.Clear;
Sql.Add('SELECT *');
Sql.Add('FROM satıs');
Sql.Add('WHERE SATILAN_MALLAR=''' + Tarih + ''''); :roll: burada AND KOSULU NASIL KULLNIRIM
Prepare;
Open;
begin
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Mesaj gönderen yusuf »

ben şöyle birşey denedim fakat yalnız satılanları gösteriyor

procedure TAnaform.PlannerCalendar1DateChange(Sender: TObject; origDate,
newDate: TDateTime);
var
Tarih:String;
begin
Tarih := Copy(DateToStr(PlannerCalendar1.Date),7,4) + '.' + Copy(DateToStr(PlannerCalendar1.Date),4,2) + '.' + Copy(DateToStr(PlannerCalendar1.Date),1,2);
With Data.satısQry do
begin
Close;
UnPrepare;
Sql.Clear;
Sql.Add('SELECT *');
Sql.Add('FROM satıs');
Sql.Add('WHERE SATILAN_TAR=''' + Tarih + ''''); :roll: burada AND KOSULU NASIL KULLNIRIM
Prepare;
Open;
begin
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

slm..

Bir butonun click'ine yukarıdaki iki kodu da yapıştır...Form da iki tane Datasource'un olsun...
Ayar olarak yapacağın sadece;

Kod: Tümünü seç

DBGrid1.Datasource:=Datasource1;
Datasource1.Dataset:=Query1;
---------
DBGrid2.Datasource:=Datasource2;
Datasource2.Dataset:=Query2;
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Mesaj gönderen yusuf »

uğur kardeş peki tarihi seçince aynı tarihte satılanlar grid 1 de satılmayanlar grid 2 de nasıl gelecek
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

Dediklerimizi uygulayarak...Bunları uygulaman lazım değilse yapamazsın.
Bu iki mesaj senin sorunun tam cevabı..Takılırsan yine sorabilirsin...

iyi günler...
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Mesaj gönderen yusuf »

verdikleriniz kodlar yapıştırıyorum

kod 1
with Query1 do
begin
Close;
SQL.Clear;
Sql.Add('select * from tablo where tarih=:tarih');
ParamByName('tarih').Asdate :=DatetimePicker1.Date;
Prepare;
Open;
end;

grid 1 de tarihte bulunan satılan ve satılmayan tüm malları gösteriyor

verdiginiz ikinci kod da ise grid2 de seçtiğim tarih dışındakileri veriyor
bense tıkladığım tarihteki grid1 de satılan malların grid 2 de satılmayan malların listesini görüntülemek istiyorum sizide yoruyorum kusura bakmayın ilginize tsk.
ASE
Kıdemli Üye
Mesajlar: 518
Kayıt: 28 Ağu 2003 03:17
Konum: samsun
İletişim:

Mesaj gönderen ASE »

Kardeş bu böyle olmayacak. Samanlıkta iğne arar gibiyiz. Bizim kodlarımız sadece tahmine dayanıyor. Şu tablo yapını ayrıntısıyla gönder bizde uygun sql i yazıp gönderelim. Yazılan kodlar zaten o tarihtekileri göster ve o tarihte olmayanları göster şekinde. Önceki benim yazdığım kodda ise satıldı diye bi alanın olduğunu varsaymıştık.


Kolay gelsin.
Allah'ım!...
Yol boyunca bırakma elimi...
Düşerim sonra...


ASE YAZILIM
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Mesaj gönderen yusuf »

databeyzim şu şekilde

tarih
satılan mallar
satılmayan mallar

bir form yaptım

forma 2 adet Query yerleştirdim
3 adet edit bir adet de DateTimePicker yerleştirip query1 e bağladım
2 adet grid yerleştirdim
birinci gridi query1 bağladım
ikinci gridi query 2 ye bağladım
şimdi istediğim DateTimePickker de tarihi seçtiğimde o tarihteki satılan mallar grid1 de görüntülensin. satılmayan mallarda grid2 de görüntülensin
teşekkürler.
ASE
Kıdemli Üye
Mesajlar: 518
Kayıt: 28 Ağu 2003 03:17
Konum: samsun
İletişim:

Mesaj gönderen ASE »

Satılan ve satılmayan mallar nerden geliyor veri tabanına. EWllemi giriyorsun yoksa bi yerden mi çağırıyorsun.


Kod: Tümünü seç

'select tarih, satılan_mallar from table where tarih : 20.01.2005'

Kod: Tümünü seç

'select tarih, satılmayan_mallar from table where tarih : 20.01.2005'
işini görmesi lazım.[/code]
Allah'ım!...
Yol boyunca bırakma elimi...
Düşerim sonra...


ASE YAZILIM
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Mesaj gönderen yusuf »

aynı form üzerinden giriyorum tsk.
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Mesaj gönderen yusuf »

ben size şöyle sorayım bu sorunumu anlatabilir


with Data.SatıstakipQry do
begin
Close;
SQL.Clear;
Sql.Add('select * from satıstakip where TAKIP_TARIHI=:tarih');
ParamByName('tarih').Asdate :=PlannerCalendar1.Date;
Prepare;
Open;
end;
end;
end.
Uğur arkadaşımın yazdığı kod birinci grid üzerinde seçtiğim tarihteki tüm
satılan satılmayan ürünleri gösteriyor. burası doğru
benim sorunum bu kodun devamında aynı tarih seçiminde query iki içinse yalnız satılmayanları grid 2 de listelemek
onun içinse yukarıdaki koda sanıyorum :oops:
Sql.Add('select * from satıstakip where TAKIP_TARIHI=:tarih'); AND Koşulu nasıl kullanırım :oops:
Cevapla