sql cümlesi

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

sql cümlesi

Mesaj gönderen naile »

Şu yapıda bir tablom var:

Kod: Tümünü seç

Firma   Ürün   Tutar1   Tutar2   Tutar3 ...
A          1     1      3       0
A          2     4      2       5
B          1     6      5       5
B          2     4      2       4
B          3     5      5       5
tutar1,tutar2... her aya göre o üründen alınan tutarları veriyor, yani tutar1 1. ay tutar2 2. ay..

Burda şöyle bir cümle kullanıyorum:

Kod: Tümünü seç

Select Firma,Sum(tutar1),Sum(tutar2),sum(tutar3) 
From tablo
Group by Firma
Burda her firmanın her aya ait toplam tutarlarını tek satırda görebiliyorum yani:

Kod: Tümünü seç

Firma      Tutar1   Tutar2   Tutar3 ...
A              5           5         5
B              15         12       14
Yapmak istediğim ise şöyle:
Bu iki firmayı birleştirmek istersem mesela bir alan daha olacak ve o alanda birleştiği firmayı yazacak ve sadece tek satır olacak A firması görülecek ama tutar olarak A ile B nin toplamını alacak.

Kod: Tümünü seç

Firma      Tutar1   Tutar2   Tutar3 ...
A              20          17          19
Bunu iç select kullanarak yapabilirim ama bu bana yavaşlık verir gibi geldi.

Kod: Tümünü seç

Select (select firma ..)
sum(tutar1),..
From Tablo
bir şekilde gruplama yapmam lazım neye göre gruplandıracağım? Velhasıl çözemedim bu işi. Bir firki olan var mı? :)
Misafir

Mesaj gönderen Misafir »

Kod: Tümünü seç

SELECT SUM(TUTAR1) AS OCAK, SUM(TUTAR2) AS SUBAT FROM TABLO WHERE FIRMA = 'A' OR FIRMA = 'B'

yani gruplama yapmadan where ile çözülebilir iş.

kolay gelsin.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Ama firmanın adı ve diğer bilgilerini de görmek istiyorum
Misafir

Mesaj gönderen Misafir »

şimdi A ve B firmaları na ait toplamları göreceksiniz. ama firama adını görmek istiyorum derken A firmasının adını mı görmek istiyorsunuz yoksa B firmasının adını mı ?
Kullanıcı avatarı
mikser
Üye
Mesajlar: 120
Kayıt: 30 Haz 2003 09:54
Konum: Ankara

Mesaj gönderen mikser »

hangi firma hangi firmayla birleşmiş nerden bilinecek?

örnekde ki,
Firma Tutar1 Tutar2 Tutar3 ...
A 20 17 19

neye göre A, neden B degil?

şu sekilde istediginiz gibi olur fakat. B olması gerektiginde yine A yazar.

SELECT ' A' as Firma, SUM(TUTAR1) , SUM(TUTAR2), SUM(TUTAR3)
FROM Tablo
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

İşte onun için bir alanım daha olacak. A nın olduğu satıda B yazdığı zaman B yi hiç görmeyecek B'nin toplamını A'ya dahil edecek yok eğer null sa yapacak bişey yok :)
Misafir

Mesaj gönderen Misafir »

biraz karıştı ama.

Kod: Tümünü seç

SELECT MAX(FIRMA) AS FIRMA, SUM(TUTAR1) AS OCAK, SUM(TUTAR2) AS SUBAT FROM TABLO WHERE FIRMA = 'A' OR FIRMA = 'B'
max veya min ile size uygun olanı seçebilitsiniz sanırım.
Cevapla