1

Konu: SQL Select

Çok uzun bir aradan sonra tüm Fox4um dostlarına Merhaba,

iki adet tablom var
A tablomda 10 kayıt
B tablomda A tablosu ile ilişkili 50 kayıt olsun. (A tablosundaki kayıtların bazıları B tablosunda 1 den fazla satırla ilişkili veya A tablosundaki kayıt B de hiç yok.)
SQL sorgum sonucunda sadece A tablosundaki  10 kaydı görmek istiyorum. Ancak where kuralımı B tablosuna uygulamak zorundayım.

Tüm cevaplar için şimdiden teşekkürler.

2

Re: SQL Select

Zeki  merhaba,
Korkarim sorun anlasilmaz olmus:) Yine de dogru anladim mi deneyeyim:

Visual Fox Pro
Select * from TableA a where exists (select * from tableB b where a.ID = b.aID and b.FieldX = "xxxx")

3

Re: SQL Select

Merhaba abi,
Valla o kadar uzun süre olduki kod yazmayalı sadece kod yazmada değil soruyu yazmakta bile güçlük çekiyorum. Kusura bakmayın.(Umarım bundan sonra yazılımdan bu kadar uzaklaşmak zorunda kalmam. Yaklaşık bir aydır MS SQL +VS ile tırmalayıp duruyorum.)

Verdiğin sorgu olmadı maalesef.
Ornekle açıklamaya çalışayım. umarım bu sefer beceririm.
TableA
ID AD
1 Zeki
2 Ali
3 AHmet
4 Can

TableB
ID AID YUZDE, TIP
1 1 %25 TIP1
2 1 %25 TIP2
3 1 %50 TIP3
4 2 %100 TIP3
5 1 %100 TIP1
6 1 %100 TIP2


Şimdi Benim ihtiyacım olan
Yalnızca TableA Listesi. Ancak istediğim zamanda TIP'e gorede aynı sorgu çalışmalı.
Senin verdiğinin olmama sebebi Can'ın  TableB'de %'si olmadığı için Sorgu sonucunda Can eksik geliyor.

4

Re: SQL Select

Hala dogru anladim mi emin degilim smile Nasil bir sonuc istedigini yazmamissin. Bu degil sanirim:

Visual Fox Pro
Create cursor TableA  (ID i, AD c(10))

Insert into tableA (ID, AD) values (1, 'Zeki ')
Insert into tableA (ID, AD) values (2, 'Ali')
Insert into tableA (ID, AD) values (3, 'AHmet')
Insert into tableA (ID, AD) values (4, 'Can')
 
Create cursor TableB (ID i, AID i, YUZDE c(10), TIP c(10))
Insert into tableB (ID, AID, YUZDE, TIP) values (1, 1, '%25', 'TIP1')
Insert into tableB (ID, AID, YUZDE, TIP) values (2, 1, '%25', 'TIP2')
Insert into tableB (ID, AID, YUZDE, TIP) values (3, 1, '%50', 'TIP3')
Insert into tableB (ID, AID, YUZDE, TIP) values (4, 2, '%100', 'TIP3')
Insert into tableB (ID, AID, YUZDE, TIP) values (5, 1, '%100', 'TIP1')
Insert into tableB (ID, AID, YUZDE, TIP) values (6, 1, '%100', 'TIP2')
 
 
Select * from tableA ;
left join tableB on tableA.ID = tableB.aID

5

Re: SQL Select

Bu arada, MS SQL + VS ugrasiyorsan Linq kullanmayi dene. SQL ile anlatmasi zor bir cok sorgu onda daha rahat.

6

Re: SQL Select

Abi tekrar merhaba,
left joinde aşağıdaki gibi sonuç çıkıyor.

1    Zeki          1    1    25            TIP1     
1    Zeki          2    1    25            TIP2     
1    Zeki          3    1    50            TIP3     
1    Zeki          5    1    100           TIP1     
1    Zeki          6    1    100           TIP2     
2    Ali           4    2    50            TIP3     
3    Ahmet         NULL    NULL    NULL    NULL
4    Can           NULL    NULL    NULL    NULL

Oysa benim sorgulama sonucunda istediğim her zaman TableA verileri.
1    Zeki     
2    Ali       
3    Ahmet     
4    Can       

where TableB.TIP ="TIP3" kuralını işlediğimde ise
1    Zeki
2    Ali Sonucu Çıkması

Bu arada eğer yolun Cumhuriyet meydanına düşerse bir kahve içmeye her zaman bekliyorum.

7

Re: SQL Select

O zaman ilk verdigim dogruymus smile Biraz modifiye edince oluyor:

Visual Fox Pro
Create cursor TableA  (ID i, AD c(10))

Insert into tableA (ID, AD) values (1, 'Zeki ')
Insert into tableA (ID, AD) values (2, 'Ali')
Insert into tableA (ID, AD) values (3, 'AHmet')
Insert into tableA (ID, AD) values (4, 'Can')
 
 
 
Create cursor TableB (ID i, AID i, YUZDE c(10), TIP c(10))
Insert into tableB (ID, AID, YUZDE, TIP) values (1, 1, '%25', 'TIP1')
Insert into tableB (ID, AID, YUZDE, TIP) values (2, 1, '%25', 'TIP2')
Insert into tableB (ID, AID, YUZDE, TIP) values (3, 1, '%50', 'TIP3')
Insert into tableB (ID, AID, YUZDE, TIP) values (4, 2, '%100', 'TIP3')
Insert into tableB (ID, AID, YUZDE, TIP) values (5, 1, '%100', 'TIP1')
Insert into tableB (ID, AID, YUZDE, TIP) values (6, 1, '%100', 'TIP2')
 
 
 
lcTip = 'TIP3'
*lcTip = null
Select * from TableA a where ?m.lcTip is null or ;
  exists (select * from tableB b where a.ID = b.aID and b.TIP =?m.lcTip)

8

Re: SQL Select

Teşekkürler abi bu sorunumu çözdü.
Dediğim gibi Cumhuriyet meydanından geçersen bir kahveye beklerim.
Görüşmek dileğiyle.

9

Re: SQL Select

Run sc start servisadı
veya
Run net start "servis görünen adı"

10

Re: SQL Select

cihan1963 yazdı:

Sevgili Msayın
teşekkür ederim hemen kontrol edecegim

bu arada bir sen yazdın

siyasi yazı yazsaydım 10 tane cevap gelirdi soru olunca tık yok sen hariç
ee ne diyelim onları firavun şey etsin ne fikirlerine nede başka bir şeylerine
ihtiyacım yok daha bir şeyler yazardım ama neyse

** Ben Çetin hocaya Skypeden yazar sorarım o da cevabı bilmiyorsan sağlık olsun
    zaten benim için iyi niyetli cevap yazacak kişinin kendi ve fikriyle Çetin hocanın
    bilgisi önemli gerisi şeyden aşağı kaşım paşa.

İLGİ VE PAYLAŞIMINDAN DOLAYI ÇOK TEŞEKKÜR EDERİM MSAYIN ARKADAŞIM.

2 soru:

  • Konu başlık ile senin soru ne tür bir ilişkisi var?

  • Senin Çetin Bey ile Skype üzerinden görüşmeniz özel bir konu değilmi? Bunu neden burda belirtiyorsun? Belki Çetin Bey senin ile görüşdüğünü bizim ile paylaşmak istemiyor?

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

11

Re: SQL Select

Cihan,
Lutfen sabirlari zorlama, gereksiz alinganlik yapma. Cok gereksiz ayrinti eklemissin. skype'dan bana soru soranlarin haddi hesabi yok sen de tahmin ediyorsundur ve benim herkese yetismem mumkun degil.
Sorunun cevabini msayin biliyormus cevap vermis. Baskasinin bilip de cevap vermedigini nereden cikariyorsun, sadece bir varsayim. Ister inan ister inanma, sorunu gordugumde cevabini ben de bilmiyordum, msayin yazinca ondan ogrendim. Yani ben de bu forumlardan bir seyler ogreniyorum.
Rica ediyorum sadece sorunu sor, bilen varsa cevap verir. Ben de her dakika buraya bakmiyorum, bakmis gormus ve biliyorsam ben de cevap veririm. Haksiz yere kimseyi suclama.

12

Re: SQL Select

sabır ile sınırı karıştırmandan belli
Her kavram çorba oluyor, dediklerinin sonu "deve aranıyor" benzeri bir duyuru ile sonlanıyor.

- Mehmet haklı, bu başlıktaki altı çizilen kavram sen ben değil, "Sql servis kapalıyken proje içerisinden nasıl start edebilirim"
- Mehmet haklı, Çetin ile özel görüşmelerin burada yer kaplaması gereksiz.
- Çetin haklı, örneğin ben bir yanıtı biliyorsam Çetin'den önce kovboy gibi davranmazsam foruma katkıda bulunamadığımı düşünüyorum.
- msayin'a bilgime katkısından dolayı teşekkür ederim.

cihan1963 yazdı:

Ne sınırı zorlaması
....
bazen bende kendimi ifade edebilmek için devemi aramalıyım bilmiyorum.

VFP9 SP2

13

Re: SQL Select

Amaç üzüm yemek değil ki, maksat bir bahane bulup ona buna hakaret etmek. Cevap vermiş msayın. Daha ne?

insanların görevi sanki burada nöbet tutup otçulun soruları yanıtlamak.

Kendine saray yapmak için kıçındaki donunu alır muktedir. Alkışlar. Sonra da gelip burada ona buna sinkaf eder. Yürü git!



cetinbasoz yazdı:

Cihan,
Lutfen sabirlari zorlama, gereksiz alinganlik yapma. Cok gereksiz ayrinti eklemissin. skype'dan bana soru soranlarin haddi hesabi yok sen de tahmin ediyorsundur ve benim herkese yetismem mumkun degil.
Sorunun cevabini msayin biliyormus cevap vermis. Baskasinin bilip de cevap vermedigini nereden cikariyorsun, sadece bir varsayim. Ister inan ister inanma, sorunu gordugumde cevabini ben de bilmiyordum, msayin yazinca ondan ogrendim. Yani ben de bu forumlardan bir
seyler ogreniyorum.
Rica ediyorum sadece sorunu sor, bilen varsa cevap verir. Ben de her dakika buraya bakmiyorum, bakmis gormus ve biliyorsam ben de cevap veririm. Haksiz yere kimseyi suclama.

14

Re: SQL Select

cihan1963 yazdı:

Ne sınırı zorlaması

kızgınlık belirttim ben zaten sana yazdığımı hemen hemen her soruya cevap verdiğini belirttim
kaldıki skype üzerinden toplu anlatım yapmıştın

adama bakarmısın belki Çetin seninle skypeden yazdığını bizim bilmemizi istemiyor diyor
siz kimsiniz yav bunu bu şekilde soruyorsunuz

yani hoca hadi ben yazmayayımda bu konuda bari sen 2 cümle etseydin

sonra ben alınganlık yapıyorum
bakış açın enteresan

bazen bende kendimi ifade edebilmek için devemi aramalıyım bilmiyorum.

Ben hangi konuda iki cumle edecektim? Mehmet'in soyledikleri konusunda mi? Mehmet hakli, duymak istedigin buysa.
"Adama bakarmisin, ... siz kimsiniz ..." laflarin konusunda mi iki cumle? Bakiyorum adam (ozur Mehmet) hakli. Kim oldugu belli, donup de sana "sen kimsin" demeyecek kadar olgun birisi. Sen dusunmeden basta, Skype'dan Cetin'e sorardim diyorsun. Ya Cihan bu ne demek. insan bunu yazdigina utanir. Sen hala benden ve diger arkadaslardan hesap sorma pesindesin. Aydin cok hakli, amac bagciyi dovmek gibi.
Ya bunlar cok gereksiz, hic haz etmedigim seyler. Teknik konunun disinda olunca, sustugumda sanmaki seni hakli ya da haksiz gordugumdendir.

15

Re: SQL Select

cihan1963 yazdı:

...neyse her yazdığım konu sorun oluyor demekki hiç bir şey hakkında yazmamak gerekiyor
ne skype nede form'da sadece bir okuyucuyum artık.

sizlere iyi harmanlanmalar.

Koçum Cihan
muhatap olma , küçük düşsünler !

VFP9 SP2