DELETE+SUM (SQL)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
jafari1983
Üye
Mesajlar: 44
Kayıt: 05 Eyl 2010 10:32

DELETE+SUM (SQL)

Mesaj gönderen jafari1983 »

Selamun aleykum qardaşlar.
1. Men bir eczahane programı yazıram. Sizden biraz tavsiye almaq istedim. Table`ler ile elaqedar. Bütün şeyleri aynı table`da tuturam. İlaçların isimleri, borclar, ödenmiş borclar.. herşeyi... Siz neyi hangi table`de tutmamı tavsiye ederdiniz ? Kaç tane table yaratmalıyam ?
2. İkinci sualim SQL ile ilgili.

Kod: Tümünü seç

DELETE FROM TABLE1 WHERE (SUM(miqdar)) = 0
. Bunu bir türlü tuttura bilmedim. (ADO+MS Access). Yapmaq istediyim şey table`deki toplamı 0-a beraber olan ilaç isimlerini silmek.
"Əlini (ə.) şah, Muhammədi (s.) padişah bilməyən Allahı da tanımaz!"
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: DELETE+SUM (SQL)

Mesaj gönderen mkysoft »

Access üzerinde eczane programının çok sağlıklı olacağını sanmam. Firebird, MSSQL gibi gerçek veritabanları kullanın. toplamı 0 olanları silmek için içe içe (inner) sql yazmalısınız:

Kod: Tümünü seç

delete from table1 t1 where (select sum(toplam) from table1 t2.id=t1.id group by ilac)=0
Kesin çalışır diyemiyorum. Zaten programınız kurgalama mantığında hata var.
öncelikle ilaç bilgilerini tutacağız bir stok tablosu yapın.
hareket isimli bir tabloda ilac giriş ve çıkış kayıtlarını tutun.
baska bir tabloda ödemeleri tutun.
bu tabloları ilgili alanlarla birine bağlamalısnız. mesala hareket ve stok tablosunu ilaç barkoduyla bağlamak gibi.
Kullanıcı avatarı
jafari1983
Üye
Mesajlar: 44
Kayıt: 05 Eyl 2010 10:32

Re: DELETE+SUM (SQL)

Mesaj gönderen jafari1983 »

Cevabınız için çok teşekkür ederim. Ama malesef verdiğiniz SQL komutu çalışmadı, ben yanlış soyemiştim size. Benim databasimde 2 tablo var, biri ilaç bilgilerini tutuyor, ikincisi ise yalnızca ilaçların alım/satımı ve barkodu tutuyor. İlaç alımında +1 satımda ise -1 gibi qayd edilir.

001100110011 (Aspirin) 5
001100110011 (Aspirin) -5
002200220022 (Viagra) 10

Ben aspirinin (yani 001100110011) ikinci tablodan bütün row'lardan silinmesini istiyorum.

Teşekkürler.
"Əlini (ə.) şah, Muhammədi (s.) padişah bilməyən Allahı da tanımaz!"
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: DELETE+SUM (SQL)

Mesaj gönderen mkysoft »

kaydın birini sildiğinizde doğal olarak toplam 0 dan büyük olur o nedenle verdiğim SQL işe yaramaz. Öncelikle toplamı 0 olan kayıtları başka bir tabloya yazmalısınız (geçici tablo kullanılabilir ama accsess de varmı emin değilim) sonrada o tabloya göre silmelisiniz.
0 olanları bir tabloya yazmak için

Kod: Tümünü seç

insert into temptable (select barkod from stok where (select sum(miktar) as toplam from stok  group by barkod)=0)
0 olnaları silmek için

Kod: Tümünü seç

delete from temptable where barkod in (select * from temptable)
Kullanıcı avatarı
jafari1983
Üye
Mesajlar: 44
Kayıt: 05 Eyl 2010 10:32

Re: DELETE+SUM (SQL)

Mesaj gönderen jafari1983 »

Kardeşim, parantezleri görünce akses şaşırdı, FireBird`e daşıyacam bütün verileri. Men hep ADO+Access kullanmışam. Çox farq var mı aralarında. Yani, FireBird ile kursam programımı çok zorluk çıkarırmı bana? Benim için MS SQL daha rahat, ama 3 Gigabaytlıq serveri heryere daşımaq istemirem. Eğer FireBird aksesten daha çok MS SQL-e yakınsa, hemen daşınayım.
bir de ADO ile FireBird kullana bilirmiyim ?
"Əlini (ə.) şah, Muhammədi (s.) padişah bilməyən Allahı da tanımaz!"
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: DELETE+SUM (SQL)

Mesaj gönderen mkysoft »

firebirdinde ado sürücüleri olması lazım, ben çok fazla kullanmadım. ama ado yerine forumda daha önce konuştuğumuz bileşenlerden kullanırsanız daha az sorun çıkacaktır. temel mantıkta tabiki MSSQL gibi bir RDMS firebirdde. farklı mantıklar içeriyor olabilir. videolu derslerde firebird konusu işlenmişti galiba. bir ucundan başlarsanız MSSQL bildiğinize göre çok hızlı yol alacağınıza eminim.
Kullanıcı avatarı
jafari1983
Üye
Mesajlar: 44
Kayıt: 05 Eyl 2010 10:32

Re: DELETE+SUM (SQL)

Mesaj gönderen jafari1983 »

Allah sizden razı olsun!
"Əlini (ə.) şah, Muhammədi (s.) padişah bilməyən Allahı da tanımaz!"
Cevapla