# inmonths - kod ve grafik fonksiyonu

Bu fonksiyon bir zaman damgasının bir temel tarih ile aynı aylık, iki aylık, üç aylık, dört aylık veya yarı yıllık dönem içinde mi kaldığını bulur. Zaman damgasının önceki veya sonraki bir zaman dönemine denk gelip gelmediğini bulmak da mümkündür.

Söz Dizimi:

InMonths(n\_months, timestamp, base\_date, period\_no [, first\_month\_of\_year])

**Dönüş veri türü:** Boole

Bağımsız Değişkenler:

InMonths bağımsız değişkenleri

| Bağımsız Değişken | Açıklama |
| --- | --- |
| n\_months | Dönemi tanımlayan ayların sayısı. Şunlardan biri olması gereken bir tamsayıya çözümlenen bir tamsayı ya da ifade: 1 (inmonth() fonksiyonunun eşdeğeri), 2 (iki aylık), 3 (inquarter() fonksiyonunun eşdeğeri), 4 (dört aylık dönem) veya 6 (yarı yıl). |
| timestamp | base\_date ile karşılaştırmak istediğiniz tarih. |
| base\_date | Dönemi değerlendirmek için kullanılan tarih. |
| period\_no | Dönem period\_no ile kaydırılabilir. Bu değer bir tamsayı ya da tamsayıya çözümlenen bir ifadedir ve burada 0 değeri base\_date içeren dönemi belirtir. period\_no içindeki negatif değerler önceki dönemleri; pozitif değerler ise sonraki dönemleri gösterir. |
| first\_month\_of\_year | Ocak'ta başlamayan (mali) yıllarla çalışmak istiyorsanız, first\_month\_of\_year içinde 2 ile 12 arasında bir değer belirtin. |

Örnekler ve sonuçlar:

Bu örneklerde GG/AA/YYYY tarih biçimi kullanılmaktadır. Tarih biçimi, kod dosyanızın en başında SET DateFormat deyimi içinde belirtilir. Örneklerdeki biçimi gereksinimlerinize uyacak şekilde değiştirin.

Örnek 1:

`inmonths(4, '25/01/2013', '25/04/2013',   0)`

True döndürür. Çünkü timestamp değeri (25/01/2013) 01/01/2013 ile 30/04/2013 tarihleri arasındaki dört aylık dönem içinde yer almaktadır ve base\_date değeri 25/04/2013 de bu dönem içindedir.

Örnek 2:

`inmonths(4, '25/05/2013', '25/04/2013',   0)`

False döndürür. Çünkü 25/05/2013 yukarıdaki örnekte verilen aynı dönemin dışındadır.

Örnek 3:

`inmonths(4, '25/11/2012', '01/02/2013',   -1 )`

True döndürür. Çünkü period\_no için -1 değeri, arama dönemini dört aylık bir dönem kadar (n-months değeri) geriye kaydırır ve bu da arama dönemini 01/09/2012 ile 31/12/2012. tarihleri arasına getirir.

Örnek 4:

`inmonths( 4, '25/05/2006', '01/03/2006',   0, 3)`

True döndürür. Çünkü first\_month\_of\_year değeri 3 olarak ayarlanmıştır ve bu da arama dönemini 01/03/2006 ile 30/07/2006 tarihleri arasına getirir (01/01/2006 ila 30/04/2006 aralığı yerine).

Örnek 5:

Örnek kodu belgenize ekleyin ve çalıştırın. Ardından, sonucu görmek için belgenizdeki bir sayfaya en azından sonuçlar sütununda listelenen alanları ekleyin.

Bu örnek, tablodaki fatura tarihinin, iki aylık bir dönem kadar kaydırılan (period\_no değerinin 1 olarak belirtilmesiyle) base\_date değerinin içinde bulunduğu iki aylık döneme denk gelip gelmediğini kontrol eder.

`TempTable:` `LOAD RecNo() as InvID, * Inline [` `InvDate` `28/03/2012` `10/12/2012` `5/2/2013` `31/3/2013` `19/5/2013` `15/9/2013` `11/12/2013` `2/3/2014` `14/5/2014` `13/6/2014` `7/7/2014` `4/8/2014` `];` ` ` `InvoiceData:` `LOAD *,` `InMonths(2, InvDate, '11/02/2013', 1) AS InMthsPlus1` `Resident TempTable;`

`Drop table TempTable;`

Sonuçta ortaya çıkan tabloda orijinal tarihler ve InMonths() fonksiyonunun döndürdüğü değeri içeren bir sütun yer alır.

Arama dönemi 01/03/2013 ile 30/04/2013 tarihleri arasındadır; çünkü base\_date değeri fonksiyondaki değerden (11/02/2013) iki ay ileri kaydırılmaktadır.

Örnek 5 sonuçları

| InvDate | InMthsPlus1 |
| --- | --- |
| 28/03/2012 | 0 (False) |
| 10/12/2012 | 0 (False) |
| 5/2/2013 | 0 (False) |
| 31/3/2013 | -1 (True) |
| 19/5/2013 | 0 (False) |
| 15/9/2013 | 0 (False) |
| 11/12/2013 | 0 (False) |
| 2/3/2014 | 0 (False) |
| 14/5/2014 | 0 (False) |
| 13/6/2014 | 0 (False) |
| 7/7/2014 | 0 (False) |
| 4/8/2014 | 0 (False) |