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.
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

Slm..

Bir sorguda 2 gridde farklı farklı kayıtlar gösteremezsin...

Bence yukarıdaki sorgunun altına, aşağıdaki kodu da ekle ve farklı Query kullan..
İnşallah sorununu doğru anlamışımdır :?:

Kod: Tümünü seç

with Query2 do //
begin
  Close;
   SQL.Clear;
   Sql.Add('select satilmayan_mallar from satistakip where TAKIP_TARIHI<>: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 »

teşekkürker uğur kardeş sanıyorum sorunumu bu çözecek

Sql.Add('select satilmayan_mallar from satistakip where TAKIP_TARIHI=:tarih'); buraya ikinci koşulu nasıl yazabilirim yani tarihten sonra birde satılmayan malları kısıtlamak istiyorum

yardımın için çok teşekkür ederim
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Mesaj gönderen yusuf »

bu kod da nerede yanlış yapıyorum acaba

with Query1 do
begin
Close;
SQL.Clear;
Sql.Add('select * from satıstakıp where TARIHI=:tarih);
ParamByName('tarih').Asdate :=PlannerCalendar1.Date;
Prepare;
Open;
end;

with Query2 do
begin
Close;
SQL.Clear;
Sql.Add('select * from satıstakıp where TARIHI=:tarih and URUN_TURU=:satılan');
ParamByName('tarih').Asdate :=PlannerCalendar1.Date;
ParamByName('satılan').AsString :='SATILAN_MALLAR';
Prepare;
Open;
end;

Teşekkürler iyi günler
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

slm...

Bir ürünün satılan mal olup olmadığını nasıl anlıyorsun. :?: .Eğer kıstasın
URUN_TURU alanıysa...diyelim
Örnek veriyorum..
URUN_TURU=Integer
URUN_TURU=1 //satılan mal olarak değerlendiriyorum
URUN_TURU=0 //satılmayan mal
O zaman sorgun şöyle olacak..

Kod: Tümünü seç

Sql.Add('select * from satıstakıp where TARIHI=:tarih and URUN_TURU=0'); 
Sonuc olarak bu sorgu istediğin tarihte ve satılmayan malları listeler...
-----------------------------------------------
Eğer sadece satılan malları listelemek istersen tersi olur...

Kod: Tümünü seç

Sql.Add('select * from satıstakıp where TARIHI=:tarih and URUN_TURU=1');
böyle bir yöntem de kullanabilirsin...

Bir de 0/1 nerden geldi dersen..bir ürünün default halini 0 olarak belirlersin URUN_TURU=0...Bir ürünü satacağın zaman ise URUN_TURU=1 olarak düzeltirsin..Böylece sorunun çözülmüş olur....

iyi günler...
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
1. kodlarınızı code bloğu içerisine alırsanız daha okunaklı olur.
2. yapmak istediğiniz işlem için where ifadesine ikinci bir koşul koymanız yeterli değilmi?
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Mesaj gönderen yusuf »

Arkadaşlar Uğurbeyin yazmış olduğu kod sayesinde sorunumu hallettim hepinize yardımlarınızdan dolayı teşekkürler.

Kod: Tümünü seç

with Data.satılanQry do
begin
  Close;
   SQL.Clear;
   Sql.Add('select * from takip where TARIHI=:tarih');
   ParamByName('tarih').Asdate :=PlannerCalendar1.Date;
    Prepare;
   Open;
begin
    with Data.satılmayanQry do
begin

  Close;
   SQL.Clear;
   Sql.Add('select * from takip where TARIHI=:tarih and SATILMA_ORANI=2');
   ParamByName('tarih').Asdate :=PlannerCalendar1.Date;
    Prepare;
   Open;
 end;
[/i][/b]
Kullanıcı avatarı
osmantaskiran
Üye
Mesajlar: 34
Kayıt: 17 Nis 2004 09:27
İletişim:

Mesaj gönderen osmantaskiran »

Arkadaşlar tüm kodları silin kafanızdan.
Basit anlamda 2 adet tablom var.
1.tablom: stok mallarını tutuyor.
TABLOADI:STOKKART
--------------
STOKKODU
STOKADI
---------------

2.tablomda
TABLOADI:STOKHAREKET
------------------
STOKHAREKETNO - integer-ident-autoincrement
STOKKODU
HAREKETTARIH
-----------------------


1.SORGUM:
--------------------------------
SELECT STOKKART.STOKKODU,STOKKART.STOKADI FROM STOKKART
INNER JOIN STOKHAREKET on STOKKART.STOKKODU=STOKHAREKET.STOKKODU
WHERE STOKHAREKET.HAREKETTARIH=:TARIH
----------------------------------
Querye parametre olarakta tarih değerini vereceksin

2.SORGUM
-------------------------------
SELECT STOKKART.STOKKODU,STOKKART.STOKADI FROM STOKKART
WHERE STOKKART.STOKKODU NOT IN (SELECT STOKHAREKET.STOKKODU FROM STOKHAREKET WHERE STOKHAREKET.HAREKETTARIH=:TARIH)
----------------------------------------------
Bu sorguyada yine ayni tarihi parametre olarak geçiyorsun.

Sorunun çözülmüş oluyor arkadaşım.
Cevapla