İlişkileri inceliyordum, keşke Firmalar tablosunda Birincil Anahtar olarak Firma adını yapmasaydınız. Performansı düşüreceği gibi veritabanında daha fazla yer kaplar.
İlişkiler tablonuz o kadar karışık ki işin içinden çıkamadım. İncelemeye devam ediyorum ancak bir tavsiye olarak islemler adında bir tablo yaptırsanız ve her türlü isleminizi oraya diğer tablolardan bağımsız olarak ayrıca ekletseniz işiniz daha kolay olacak gibime geliyor.
(14/11/2008, 12:48)mimerd yazdı: [ -> ]Kimseden ses çıkmadı? Benim durum vahim mi yav bu kadar? Yoksa hazırladığım veritabanına bakıp "anaaaa, adam saçmalamış resmen" filan mı diyosunuz?
dostum ben aynen öyle diyorum..
ilişkilendirmeler sakat doğmuş. ürün girişine bağlı kalmadan giriş detayı yapabiliyorsun bu yapıda. yani çıkış tarihi olmadan, ürün giriş nosu olmayan kayıtlar girilebiliyor. zaten öyle verilerde var örneğinde.
bu isteğin olur ama bir dünya takla attırmak lazım tablolarına.
firmalar ilişkisi ise ayrı bir sitem konusu. gerçi sevgili alpekide değinmiş.
ama şu kardeşin sonunu bile bile kıyak yapmayı sever
bu
Sql sana ikisi ilişkili toplam 6 tablonun hareketlerini bir arada görmeni sağlar. kıymetini bil bu sorguyu hiç biryerde bulmazsın. kurduğum yeni ilişki şartlarına muhakkak bak.
syrup yazdı:SELECT [ÜRÜN ÇIKIŞLARI].[Fatura Tarihi] AS Tarih, [ÜRÜN ÇIKIŞLARI].[Firma Adı], [ÜRÜN ÇIKIŞ DETAYLARI].Ürün, 0 AS [Giriş Miktar], [ÜRÜN ÇIKIŞ DETAYLARI].Miktar AS [Çıkış Miktar], [ÜRÜN ÇIKIŞ DETAYLARI].[Birim Fiyat], [birim fiyat]*[miktar] AS Toplam, 0 AS [Alınan Ödeme], 0 AS [Verilen Ödeme]
FROM [ÜRÜN ÇIKIŞLARI] INNER JOIN [ÜRÜN ÇIKIŞ DETAYLARI] ON [ÜRÜN ÇIKIŞLARI].Kimlik = [ÜRÜN ÇIKIŞ DETAYLARI].[Ürün Çıkış No] union
SELECT [ÜRÜN GİRİŞLERİ].[Fatura Tarihi] AS Tarih, [ÜRÜN GİRİŞLERİ].[Firma Adı], [ÜRÜN GİRİŞ DETAYLARI].Ürün, [ÜRÜN GİRİŞ DETAYLARI].Miktar AS [Giriş Miktar], 0 AS [Çıkış Miktar], [ÜRÜN GİRİŞ DETAYLARI].[Birim Fiyat], [birim fiyat]*[miktar] AS Toplam, 0 AS [Alınan Ödeme], 0 AS [Verilen Ödeme]
FROM [ÜRÜN GİRİŞLERİ] INNER JOIN [ÜRÜN GİRİŞ DETAYLARI] ON [ÜRÜN GİRİŞLERİ].Kimlik = [ÜRÜN GİRİŞ DETAYLARI].[Ürün Giriş No] union
SELECT [Giren Ödemeler].[Ödeme Tarihi], [Giren Ödemeler].[Firma Adı], Null AS Ürün, 0 AS [Giriş Miktar], 0 AS [Çıkış Miktar], 0 AS [Birim Fiyat], [Çıkış Miktar] AS Toplam, [Giren Ödemeler].[Ödeme Miktarı] AS [Alınan Ödeme], 0 AS [Verilen Ödeme]
FROM [Giren Ödemeler] UNION SELECT [Çıkan Ödemeler].[Ödeme Tarihi], [Çıkan Ödemeler].[Firma Adı], Null AS Ürün, 0 AS [Giriş Miktar], 0 AS [Çıkış Miktar], 0 AS [Birim Fiyat], [Çıkış Miktar] AS Toplam, 0 AS [Alınan Ödeme], [Çıkan Ödemeler].[Ödeme Miktarı] AS [Verilen Ödeme]
FROM [Çıkan Ödemeler]
yukardaki sqli query diye kaydet ve bunuda ayrıca bir querye yaz çalıştır.
syrup yazdı:SELECT syrup.Tarih, syrup.[Firma Adı] AS Firma, Sum(syrup.Toplam) AS [Satış Toplam], Sum(syrup.[Alınan Ödeme]) AS [Alınan Ödeme Toplam], Sum(syrup.[Verilen Ödeme]) AS [Yapılan Ödeme Toplam], Sum([toplam]-[Alınan Ödeme]+[Verilen Ödeme]) AS Kalan, (select sum([toplam]-[Alınan Ödeme]+[Verilen Ödeme]) from query where tarih<=syrup.tarih and [Firma Adı]=syrup.[Firma Adı]) AS Bakiye
FROM query AS syrup
GROUP BY syrup.Tarih, syrup.[Firma Adı]
yürüyen bakiyen bile hazır. bak bu bile şans dostum
tezgahı tam görmen için başka firmalarada cari hareketler yapman lazım. tek firma2 ile görünmez.
Hocam destan yazmışsın yine
Yine de senin bu kıyağına aldanmasın ilişkiler, tablolar ve tablo alanlarına geç olmadan el atsın derim.
evet evet tabiki alpeki onlar çok önemli. ilişkilendirmeler bu ilk sqldeki joinler (tabloları birleştirme özelliği) gibi olması lazım. Allahtan mimerd fazla hata yapmamış, düzeltmesi kolay olur. Sen bugün görecektin 10 tabloluk bir yapıyı 1 tabloya sığdırmış gökhan. oda ayrı bir başarı öyküsü tabi
sevgili admin uğraştı ama nafile
selamlar dostum
Arkadaşlar teşekkürler. Hepinize ayrı ayrı.
Önce de belirttiğim gibi mesleğimin aslında
Access gibi programları kullanmayla hiç alakası yok. Ama arkadaşımla birlikte yürütmeye çalıştığım işimde
Access ile veritabanı işlemeye çalışıyorum. El yordamı ile kullanmasını öğrenmiştim zaten. Bu yüzden veritabanında birçok sakatlık doğacaktır. Tavsiyelerinizi yerine getirmeye çalışıcam.
Ben ise SQL'den ziyade yine pratik düşünerek çözmeye çalıştım ve giden fatura, gelen fatura, giden ödeme, gelen ödeme bilgilerinin hepsini bir tabloda toplamayı, bu tabloda "Hareket" adlı bir sütun oluşturmayı, ardından da GELEN FATURA, GİDEN FATURA, GELEN ÖDEME, GİDEN ÖDEME gibi ayrı formlar yaratıp, bu formlarda hareket bölümüne değiştirilemeyen Default bir değer yaratıp (örneğin Gelen Faturada "Giriş" veya Giden Ödemede "Çıkış" şeklinde) sonra istediğim sorguyu tek hamlede yapmayı diye düşünmüştüm.
Ama tabii ki sizin önerileriniz daha profesyonelce.
Tekrar teşekkürler...