Jump to content

Sql Toplama


korasoglu
 Share

Recommended Posts

Arkasaşlar select * from ile döngü olarak veriyi çektirip toplatıyorum. Araştırdım hesaplama sql yaptırılabiliyor fakat beceremedim.

 

Örneğin SELECT SUM (aa) FROM deneme buradaki aa kolonunu topluyor ben yapamadım. Benim istediğim üç kolon var bunları toplatıp toplamlarını ayrı ayrı almak istiyorum. görme açısından bir kolonda olabilir nasıl yapabilirim.

Link to comment
Share on other sites

sevgili kintaro ve pairs bir tane denedim evet böyle topladı.

 

Ben veri tabanını navicatla yapıyorum şu şekilde yapsam kodla fark ne olur.

CREATE TABLE deneme(siparis_no int identity(1,1) primary key not null ,kisi_id int not null foreign key references musteri(kisi_id) ,tarih datetime default getdate(),adresi varchar(100))

Edited by korasoglu
Link to comment
Share on other sites

Hocam gerekli bilgileri aldım tşk ederim.

 

Veri tabanındaki kayıt sayısını sorguluyorum

 

SELECT COUNT(column_name) FROM table_name;

 

kayıt varsa sorun yok kayıt yoksa hata veriyor nasıl yaparımda hiç kayıt olmadığını öğrenebilirim. dönüşüm sıfır birmi oluyor. Yukarıdaki örnek harika onda da aynı kayıt varsa topluyor yoksa hata veriyor.

Link to comment
Share on other sites

Hocam gerekli bilgileri aldım tşk ederim.

 

Veri tabanındaki kayıt sayısını sorguluyorum

 

SELECT COUNT(column_name) FROM table_name;

 

kayıt varsa sorun yok kayıt yoksa hata veriyor nasıl yaparımda hiç kayıt olmadığını öğrenebilirim. dönüşüm sıfır birmi oluyor. Yukarıdaki örnek harika onda da aynı kayıt varsa topluyor yoksa hata veriyor.

 

eğer hiç kayıt yoksa 0 döner, aşağıdaki gibi alabilirsiniz:

 

Hayirlı günler SELECT *, SUM(borc), Sum(tahsilat) FROM satis Group by turu ORDER by 'reklam' desc bu sorgunun toplamlarını nasıl değişkene atayabilirim.

 

db, err = MySQLConnection:execute("SELECT SUM(sutun1) as 'Toplam1', SUM(sutun2) as 'Toplam2' FROM tablo");
tVeri = db:fetch({}, "a");


Dialog.Message("", tVeri.Toplam1 .. " - " .. tVeri.Toplam2);
Link to comment
Share on other sites

  • 2 hafta sonra ...

Hocam buradan devam etmek istedim aldığım hata aynı çalışmada olduğu için. hiç bir sorun yokken şimdi bu hatayı alıyorum google de araştırdım türkçe bir şey bulamadım anlamdım sizce bu hata ne olabilir.

 

luasql: unrecognized token

 

Edit = hatalı karakter kullanmışım hata ondan kaynaklanıyormuş (')

 

Edited by korasoglu
Link to comment
Share on other sites

Hocam tabloda uyan kayıt varsa sorun yoksa eğer yoksa hata alıyorum bunu nasıl çözebilirim.

 

SQLite3Connection, err = SQLite3Connection:execute("SELECT * FROM kisi WHERE firma LIKE '%" .. kim .. "%' AND ay LIKE '%" .. ay .. "%'  AND yil LIKE '%" .. yil .. "%'");
if SQLite3Connection ~= nil then
local adi = SQLite3Connection:fetch({}, "a")
if adi ~= nil then
 
burada adi dan hiç bir değer donmuyor boş veya sıfır dönse çözümü kolay hiç bir değer dönmüyor.
 
Yardımcı olursanız  sevinirim.
Edited by korasoglu
Link to comment
Share on other sites

kullandığın SQL sorgusunda ay ve yil alanları eğer INTEGER ise ,ben öyle olduğunu tahmin ediyorum

bu durumda LIKE operatörü görev yapmaz ,hernekadar SQLite diğer veri tabanı sistemlerine göre çok katı veri tipi karşılaştırması yapmasada

 

yinede bu işlem pek uygun değil

LIKE operatörü string veri tipi için kullanılır zaten '' işaretleride bu yüzden vardır ve bir sorguda birden çok kullanılması

çok bekleneni karşılamaz, zaten bu ay ve yil alanları birer sayı tuttuğuna göre karşılaştırmada binary operatörleri ile yapılmalı

 

örneğin :

"SELECT * FROM kisi WHERE firma LIKE '%" .. kim .. "%' AND ay = " .. ay .. "  AND yil = " .. yil .. ";"

ama ben illa bu şekilde yapacam dersen o durumda CAST operatörünüde kullanmalısın

 

buna ek olarak % magic karakterini her iki tarafta kullanmakta beklenmedik sonuçlar döndürebilir ,genellikle sadece solda olması daha mantıklıdır ,bu şekilde

kim değişkeninde ke var ise tablodan kenan,kemal,kerim gibi isimler döner ama iki tarafta olması halinde mesela melike isminide döndürür

 

eğer tam ne yapmak istediğini ,tablo yapısı ile belirtirsen , daha detaylı örnek gösterebilirim

 

Link to comment
Share on other sites

arkadaşlar buradaki sorun sadece AND kullanması. AND yerine OR kullanırsa tahminimce sorun çözülür. Tabii ki sorguda bu kadar çok LIKE kullanması büyük veritabanlarında performans düşüşüne neden olacaktır.

Link to comment
Share on other sites

pek sanmıyorum ,çünki OR kullanıldığında 3 değişkenden herhangi birisi tuttuğunda o result-set e eklenir

yani ,kim,ay,yil değişkenlerinden herhangi birisi kısmen bile uyuşma sağlasa geçerli kabul edilir

buda mantıksız bir sonuç çıkarır

 

tabiki burada sorgudaki amaç önemli , ve tam olarak ne yapılmak istendiği açık değil

 

örneğin ben 3 tane input nesnesinin birine isim,birine ay (sayı olarak) ,ve diğerinede  yıl (sayı olarak) gireceksem

sonuç olarak ,ay ve yıl sayıları belirli olduğuna göre ,ben bu ay ve yıl değerleri içinde kim değişkenine girdiğim veri ile uyuşan sonuçlara bakarım

 

ama tabiki mesela sadece yil değişkeni doldurulup diğerleri boş olarak sadece yıl bazında sorguda düşünülebilir

ama bunu yapmanın yoluda LIKE değildir tabiki

 

son olarak ,SQLite veri tipleri konusunda diğerleri gibi katı değil mesela INTEGER olarak tanımladığın bir alana string ekliyebilirsin

veya sınırlayıcı belirlediğin bir alana sınırın üzerinde veri ekliyebilirsin ve bunun gibi bir sürü olasılık var

 

sonuç olarak belki LIKE operatörü INTEGER alan üzerinde çalışabilir belki , çünki auto CAST olayı var

ama yinede bu sorgu her haliyle yanlış

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...