SQL Server 2012’de veri tabanım ve XE7 kullanıyorum. Benim yapmak istediğim kısaca şöyle. 2 Tane tablom var.
TABLO1 = YIL, SIRA, STOK, ADRES
TABLO2 = YIL, SIRA, STOK, SİPARİŞ_NU, GARANTI_BAS_TA
Aşağıdaki sorgu ile YIL. SIRA, STOK, ADRES, SIPARIS_NU, GARANTİ_SURE, GARANTI_BAS_TA, GARANTI_BITIS_TA sütunlarını oluşturuyorum.
SELECT
T1.YIL, T1.SIRA, T1.STOK, T1.ADRES, T2.SIPARIS_NU,
CASE
WHEN T2.SIPARIS_NU LIKE '%K%' THEN 365
WHEN T2.SIPARIS_NU LIKE '%M%' THEN 730
ELSE 0 END AS GARANTI_SURE,
T2.GARANTI_BAS_TA, DATEADD(DAY, CASE
WHEN T2.SIPARIS_NU LIKE '%K%' THEN 365
WHEN T2.SIPARIS_NU LIKE '%M%' THEN 730 ELSE 0
END,
T2.GARANTI_BAS_TA) AS GARANTI_BITIS_TA FROM TABLO1 T1 INNER JOIN
TABLO2 T2 ON T1.YIL = T2.YIL AND T1.SIRA = T2.SIRA
Benim yapmak istediğim bu sorguya ilave “GARANTISI” sütunu oluşturmak. Bu sütunu “GARANTI_BITIS_TA” dan bu gün ü çıkartsın
=>0 ise (GARANTİSİ DEVAN EDİYOR)
<0 ise (GARANTİSİ BİTTİ)
<>sütun boş ise (DAHA ÖNCE GELMEDİ) yazsın.
İlk sorguda ALUCARD hocam yardım etti gerisini ben yaparım zannettim ama çok uğraştım beceremedim.
Umarım bu konuda bana yardımcı olursunuz. Herkese hayırlı akşamlar.
Sorguda GARANTİ'si olup olmadığını öğrenme.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 42
- Kayıt: 08 Oca 2025 10:35
Re: Sorguda GARANTİ'si olup olmadığını öğrenme.
Kod: Tümünü seç
SELECT
T1.YIL,
T1.SIRA,
T1.STOK,
T1.ADRES,
T2.SIPARIS_NU,
CASE
WHEN T2.SIPARIS_NU LIKE '%K%' THEN 365
WHEN T2.SIPARIS_NU LIKE '%M%' THEN 730
ELSE 0
END AS GARANTI_SURE,
T2.GARANTI_BAS_TA,
DATEADD(DAY,
CASE
WHEN T2.SIPARIS_NU LIKE '%K%' THEN 365
WHEN T2.SIPARIS_NU LIKE '%M%' THEN 730
ELSE 0
END,
T2.GARANTI_BAS_TA) AS GARANTI_BITIS_TA,
CASE
WHEN T2.GARANTI_BAS_TA IS NULL THEN 'DAHA ÖNCE GELMEDİ'
WHEN DATEDIFF(DAY, GETDATE(), DATEADD(DAY,
CASE
WHEN T2.SIPARIS_NU LIKE '%K%' THEN 365
WHEN T2.SIPARIS_NU LIKE '%M%' THEN 730
ELSE 0
END,
T2.GARANTI_BAS_TA)) >= 0 THEN 'GARANTİSİ DEVAM EDİYOR'
ELSE 'GARANTİSİ BİTTİ'
END AS GARANTISI
FROM
TABLO1 T1
INNER JOIN
TABLO2 T2 ON T1.YIL = T2.YIL AND T1.SIRA = T2.SIRA
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
-
- Üye
- Mesajlar: 42
- Kayıt: 08 Oca 2025 10:35
Re: Sorguda GARANTİ'si olup olmadığını öğrenme.
Teşekkür ederim hocam Allah razı olsun.Commandx yazdı: 21 Nis 2025 10:27Kod: Tümünü seç
SELECT T1.YIL, T1.SIRA, T1.STOK, T1.ADRES, T2.SIPARIS_NU, CASE WHEN T2.SIPARIS_NU LIKE '%K%' THEN 365 WHEN T2.SIPARIS_NU LIKE '%M%' THEN 730 ELSE 0 END AS GARANTI_SURE, T2.GARANTI_BAS_TA, DATEADD(DAY, CASE WHEN T2.SIPARIS_NU LIKE '%K%' THEN 365 WHEN T2.SIPARIS_NU LIKE '%M%' THEN 730 ELSE 0 END, T2.GARANTI_BAS_TA) AS GARANTI_BITIS_TA, CASE WHEN T2.GARANTI_BAS_TA IS NULL THEN 'DAHA ÖNCE GELMEDİ' WHEN DATEDIFF(DAY, GETDATE(), DATEADD(DAY, CASE WHEN T2.SIPARIS_NU LIKE '%K%' THEN 365 WHEN T2.SIPARIS_NU LIKE '%M%' THEN 730 ELSE 0 END, T2.GARANTI_BAS_TA)) >= 0 THEN 'GARANTİSİ DEVAM EDİYOR' ELSE 'GARANTİSİ BİTTİ' END AS GARANTISI FROM TABLO1 T1 INNER JOIN TABLO2 T2 ON T1.YIL = T2.YIL AND T1.SIRA = T2.SIRA