| kurthan | 29.12.2004 - 12:35:11 |
| S.A.
iki tablom var ve bunları ilişkilendiriyorum. Tablolarımın yapısı şu şekilde Stok ---------- id stkkod Stokad Stokhavuz ---------------- id stkkod depo alis_fiyat Bu işleme göre iki tabloyu ilişkilendirerek hangi depoda hangi stoktan kaç adet olduğunu bulmam gerekiyor.Stokhavuz tablosunda her bir kayıt 1 adet stok miktarını simgeliyor.(Böyle yapmamın sebebi x kodlu bir stoktan farklı parti girişlerinde geliş fiyatları farklı olabiliyor) Bu işlem için yazdığım sql şu şekilde: Select *,COUNT(stokhavuz.id) from stokhavuz,stok where stokhavuz.stkkod=stok.stkkod GROUP BY STKKOD,DEPO order by depo bu sorgu normalde sorgu sonucunda 1 den fazla kayıt üretiyorsa sağlıklı çalışıyor.Fakat 1 sonuç üretmişse veya hiç sonuç yoksa aşağıdaki hatayı veriyor : Myquery1:Type Mismatch for field ' Count(stokhavuz.id) expecting: Largeint Actual:integer Bu sorun nereden kaynaklanıyor. Teşekkür ediyor,iyi çalışmalar diliyorum. | |
| vampir261 | 29.12.2004 - 12:50:46 |
Select *,COUNT(stokhavuz.id) from stokhavuz,stok where stokhavuz.stkkod=stok.stkkod GROUP BY STKKOD,DEPO order by depo oder by depo dan sonra ASC yada DESC yazman gerekmiyormu default olarak ASC mi alıyor yoksa. gerçi senin sorun bu değil ama.
GROUP BY STKKOD,DEPO HAVING (COUNT(stokhavuz.id) > 1) having kısmını ekle belki çalışır | |
| naile | 29.12.2004 - 13:07:20 |
| Gruplama yaptığınızda gruplanan alanları select ile seçebilirsiniz sadece Select * demeniz burda hatalı yani. | |
| kurthan | 29.12.2004 - 14:31:50 |
| S.A.
arkadaşlar having ile çözümlenemeyeceğini düşünüyorum.Çünkü sonuç 1 den büyükse gibi bir ibare var peki 1 uygun eşleşme olursa onu es mi geçecek. Teşekkür ediyor,iyi çalışmalar diliyorum. | |
| vkamadan | 30.12.2004 - 09:27:27 |
| merhaba,
bu sorunu bende yaşıyorum farklı bir başlıkta sormuştum ama halen cevap alamadım. İlginç bir durum. Sorunun nerde olduğunu bende merak ediyorum. | |
| kurthan | 03.01.2005 - 11:01:54 |
| S.A
delphide veritabanındaki otomatik artan alanlar largeint olarak görülüyor.Bu alanların count işlemi içerisinde kullanılması (ki sebebini anlayamadım) sonucunda largeint olarak döndürülmesini sağlıyor. otomatik artan alan yerine değeri boş geçilmeyecek başka bir alanın countunu aldığımda sonuç integer olarak gönderiliyor. Kolay gelsin. | |
| vkamadan | 03.01.2005 - 16:36:46 |
| merhaba,
ben tablomdaki ID alanını yani hiçbir zaman boş olmayacak bir alanı COUNT ile saydırıyorum yinede sonuç sıfırsa sorun çıkıyor. | |
| kurthan | 03.01.2005 - 22:14:39 |
| S.A.
Hocam bir önceki cevaptata problem var benim. Şöyle çözdüm tabi pek pratik değil daha doğrusu angarya oluyor. count işlemini yaptığım tabloyu ilk önce başka bir tableden açıyorum.Sonra kayıt sayısı uygunsa query ile sorguyu çalıştırıp raporluyorum ama tek kayıt veya kayıt yoksa tableden querysiz çekiyorum. Kolay gelsin. | |