SQL Ve ASP.NET Yardım
-
Arkadaşlar iki adet sorum olacak
1- MySQL bir veritabanım mevcut. Kategorili içerik sistemi mevcut. Benim istediğim kategoriye eklenen içeriklerden en sonuncuyu almak
Kısaca her bir kategoriye 4 tane içerik eklenmiş olsun, bu eklenen içeriklerden en sonuncuyu (4.) almam gerek
Örnek vereyim.
tblKategoriler
kategori_ID, kategori
1 , matematik
2 , türkçe
3 , fizik
tblIcerikler
icerik_ID, kategori_ID, baslik
1 , 1 , sayılar
2 , 1 , denklemler
3 , 1 , oran orantı
4 , 2 , anlam bilgisi
5 , 2 , yazım yanlışları
şeklinde içeriklerim olduğunu varsayın. Benim istediğim şu: Matematik kategorisine eklenen en son konu "oran orantı" ve Türkçe kategorisine eklenen en son konu "yazım yanlışları"
Bunun SQL sorgusunu yazamadım.
2) ASP.net sunucunun lokasyonu nedeniyle oluşan saat farkını nasıl önleriz. Godaddy'de sitelerim mevcut lakin Türkiye ile zaman farkı 10 saat.
Zaman farkını kaldırıp Türkiye saatine göre veri kaydetmeyi nasıl sağlarız.
İlginiz için şimdiden teşekkürler.
-
1) tüm alt yapıyı verir istersen top 1 koyup ilk değeri alabilirsin sadece
WITH Kat
(KategoriID, KategoriAdi, HierarchyLevel) AS
(
-- Base Method
SELECT
KategoriID,
KategoriAdi,
1 as HierarchyLevel
FROM Kategori
WHERE KategoriID=26
UNION ALL
SELECT
k.KategoriID,
k.KategoriAdi,
k2.HierarchyLevel + 1 AS HierarchyLevel
FROM Kategori k
INNER JOIN Kat k2 ON
k2.KategoriID = k.UstKatID
)
SELECT *
FROM Kat
ORDER BY HierarchyLevel desc
GO
2) Kültür nesnesini araştırman lazım mesela
var t =CultureInfo.CreateSpecificCulture("tr-TR"); -
İlk verdiğin kod düzenini uygulayamadım hocam.
-
hocam tarih tutsanda son ekleneni alsan olmaz mı ? bu soruyu sen sormamış olsan yaz top 1 derdim ama sql bilmediğini düşnürdüm yada ben soruyu anlamadım :)
-
SQL sorgum şu şekilde idi.
SELECT K.kategori, Max(I.icerik_ID) AS PAR_ICERIK_ID, I.baslik FROM tblKategoriler AS K INNER JOIN tblIcerikler AS I ON K.kategori_ID = I.kategori_ID WHERE I.durum = 1 AND K.durum = 1 GROUP BY K.kategori_ID ORDER BY I.icerik_ID DESC
Lakin icerik_ID kısmında max olanı alıyor, baslik kısmında ise ilk veriyi alıyor.
-
Yok mu bir yardım eden.
-
SELECT K.kategori, I.icerik_ID, I.baslik FROM tblKategoriler AS K INNER JOIN tblIcerikler AS I ON K.kategori_ID = I.kategori_ID WHERE I.durum = 1 AND K.durum = 1 and Max(I.icerik_ID)
GROUP BY K.kategori_ID ORDER BY I.icerik_ID DESC
şeklinde denermisin hocam -
soruyu yanlış anlamışım zaten ilk verdiğim örnek alakasız bişey
2. adımda soruyu doğru anladığımı farz ediyorum alttaki kodunu kendine uyarlamayı dene birde
select top 1 * from icerik where KategoriID in (select id from kategori) order by IcerikID DESC
-
Yok arkadaşlar olmuyor
Benim istediğim sonuç şu olmalı
icerik_ID, kategori_ID, baslik
1 , 1 , sayılar
2 , 1 , denklemler
3 , 1 , oran orantı <<<<<
4 , 2 , anlam bilgisi
5 , 2 , yazım yanlışları <<<<
Kategoriye eklenmiş olan içeriklerden en sonuncusunu almak ve de kategoriler tekrar etmeyecek şekilde. -
SELECT * FROM tblIcerikler WHERE icerik_ID IN
(
SELECT
max (icerik_ID)
FROM
tblKategoriler K,
tblIcerikler I
WHERE I.Kategori_Id=icerik_ID
GROUP BY I.Kategori_Id
)
