Sql max kullanımı

Gönderen Konu: Sql max kullanımı  (Okunma sayısı 1665 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı zamzam

  • Logo Kullanıcısı Pro
  • ***
  • Karma: 0
Sql max kullanımı
« : 02.04.2012, 19:39 »
Ürün kodu      Ürün Adı                       Fiyat           bitiş tarihi
1                      1 nolu ürün                 1                31.12.2011
1                      1 nolu ürün                 2                31.12.2012
1                      1 nolu ürün                 3                31.12.2013
2                      2 nolu ürün                 1                31.12.2011
2                      2 nolu ürün                 2                31.12.2012


  Gibi bir tablo var. sql tablo isimlerinde  kod    urun      fiyat      tarih    olsun. Bana lazım olan sql sorgusu her üründe sadece bitiş tarihi en büyük olan fiyatı getirmesi. yani result ta her üründen bir tane olacak ama gelen fiyat bitiş tarihi en büyük olan fiyat olacak.
  Yardımlarınız için şimdiden teşekkür ederim.


     

Çevrimdışı Koray Ü.

  • Logo Uzmanı
  • *****
  • Karma: 8
Ynt: Sql max kullanımı
« Yanıtla #1 : 03.04.2012, 08:30 »
select ürün_adı
from tablo_adı
inner join 2.tablo_adı on ...
where
logicalref in select (max(fiyat))

gibi bir sorgudan yola çıkabilirsiniz...

Çevrimdışı Monsieur®

  • LogoDestek Yönetim
  • Logo Uzmanı
  • *****
  • Karma: 38
Ynt: Sql max kullanımı
« Yanıtla #2 : 03.04.2012, 14:58 »
select kodu, adi, fiyat, tarih where tablo1 left outer join (select max(tarih) from tablo1) tablox on tablo1.tarih=tablox.tarih

Sanırım bu ezbere yazdım. :)

Çevrimdışı zamzam

  • Logo Kullanıcısı Pro
  • ***
  • Karma: 0
Ynt: Sql max kullanımı
« Yanıtla #3 : 04.04.2012, 10:57 »
Sayın Monsieur®,Koray Üçpınar
  yazmış olduğunuz sorguyu bir türlü uyarlayamadım doğrusu. Ben size sorgumu yazayım ve tablolarımı yazayım.

SELECT TBLURUN.TXTKOD, TBLURUN.TXTAD, TBLFIYATVADE.DBLFIYAT, TBLFIYATVADE.DBLALISFIYAT, TBLFIYATVADE.TXTBASLANGICTARIH, TBLFIYATVADE.LNGKOD
FROM NESTLE2011.dbo.TBLFIYATVADE TBLFIYATVADE, NESTLE2011.dbo.TBLURUN TBLURUN
WHERE TBLURUN.LNGKOD = TBLFIYATVADE.LNGURUNKOD
ORDER BY TBLURUN.TXTKOD
   Bu sorgumuz bunun karşılığında çıkan sonuç;
TXTKOD         TXTAD                                  DBLFIYAT         DBLALISFIYAT  TXTBASLANGICTARIH         LNGKOD
11470105   CHOKELLA KAVANOZ 6x320g   2.55000000   2.30000000   20070101                        4660
11470105   CHOKELLA KAVANOZ 6x320g   2.68000000   2.42000000   20070315                        4890
11470105   CHOKELLA KAVANOZ 6x320g   2.88000000   2.60000000   20071001                        5018
11470105   CHOKELLA KAVANOZ 6x320g   2.88000000   2.60000000   20071001                        5329
11470105   CHOKELLA KAVANOZ 6x320g   3.04000000   2.73000000   20080501                        5388
11470105   CHOKELLA KAVANOZ 6x320g   3.33300000   3.00000000   20091116                        6192
11470105   CHOKELLA KAVANOZ 6x320g   3.70000000   3.33000000   20100119                        6258
11470105   CHOKELLA KAVANOZ 6x320g   3.88500000   3.49000000   20110704                        6833
11470105   CHOKELLA KAVANOZ 6x320g   4.18800000   3.77000000   20111001                        6975

  burada iki adet tablo mevcut ürünlerin bulunduğu tablo ismi TBLURUN diğeri fiyatların tutulduğu TBLFIYATVADE
 Bizim yapmak istediğimiz ise Fiyatları getirirken fiyatların LNGKOD'u en büyük değeri olanı getirmesi lazım sadece.
  Tabloları birbirine query'de bağlarken TBLFIYATVADE nin LNGURUNKOD field ını TBLURUN deki LNGKOD ile eşleştiriyorum.

Çevrimdışı zamzam

  • Logo Kullanıcısı Pro
  • ***
  • Karma: 0
Ynt: Sql max kullanımı
« Yanıtla #4 : 06.04.2012, 10:54 »
.

Çevrimdışı Monsieur®

  • LogoDestek Yönetim
  • Logo Uzmanı
  • *****
  • Karma: 38
Ynt: Sql max kullanımı
« Yanıtla #5 : 09.04.2012, 14:43 »
SELECT   U.TXTKOD
      ,U.TXTAD
      ,F.DBLFIYAT
      ,F.DBLALISFIYAT
      ,F.TXTBASLANGICTARIH
      ,F.LNGKOD
FROM TBLURUN U
   INNER JOIN (
            SELECT   DBLFIYAT
                  ,DBLALISFIYAT
                  ,TXTBASLANGICTARIH
                  ,MAX(LNGKOD) LNGKOD
            FROM   TBLFIYATVADE
            GROUP BY DBLFIYAT
                  ,DBLALISFIYAT
                  ,TXTBASLANGICTARIH
            )F ON U.LNGKOD=F.LNGURUNKOD

Çevrimdışı zamzam

  • Logo Kullanıcısı Pro
  • ***
  • Karma: 0
Ynt: Sql max kullanımı
« Yanıtla #6 : 09.04.2012, 15:59 »
Çok teşekkür ederim.