> For the complete documentation index, see [llms.txt](https://learn.vispeahen.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.vispeahen.com/raporlama/sablon-tasarimi/3-sablon-versiyonlari-v0-v1-v2.md).

# 3) Şablon Versiyonları — v0, v1, v2

Satış raporunda aynı SQL sorgusu ve aynı parametrelerle üç farklı şablon versiyonu denenmiştir. Her versiyon farklı bir gruplama ve sunum yapısı kullanır; hangi versiyonun seçileceği raporun amacına göre belirlenir.

Satış raporunda aynı SQL sorgusu ve aynı parametrelerle üç farklı şablon versiyonu denenmiştir. Her versiyon farklı bir gruplama ve sunum yapısı kullanır; hangi versiyonun seçileceği raporun amacına göre belirlenir.

<figure><img src="https://3143653407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0vZHisAf5833eglFw2GE%2Fuploads%2FuaoWZfPyDEfcsKmWIYNr%2FResim9.png?alt=media&amp;token=98d394d3-8717-4090-8b1f-7ccfcfac6288" alt=""><figcaption><p align="center"><em>v0, v1 ve v2 şablonlarının çıktı yapısı karşılaştırması.</em></p></figcaption></figure>

<details>

<summary><mark style="color:$success;"><strong>v0 — Şehir × Kategori Özeti</strong></mark></summary>

Her Şehir × Ürün Kategorisi kombinasyonu için tek bir satır üretir. Ay bilgisi, seçilen tüm ayları birleşik metin ("11, 12") olarak aynı hücrede gösterir; ay bazında kırılım yapılmaz. En altta tek bir `GENEL TOPLAM` satırı çıkar. `SQL`'e herhangi bir ek değişiklik gerekmez.

<mark style="color:$primary;">🔗</mark> *<mark style="color:blue;">Şablon dosyası:</mark>*

{% file src="/files/cHmWWYXGqjNrFTbMNnJb" %}

<mark style="color:yellow;">Döngü yapısı (v0):</mark> \
\
Şablonda A10 kolonunda bulunan comment;

```
{% for city, city_grup in sale|groupby('city') %}
{% for category, grup in city_grup|groupby('product_category') %}
```

Şablonda A11 kolonunda bulunan comment;

```
{% endfor %}
{% endfor %} | GENEL TOPLAM: {{ sale|sum(attribute='order_amount')  }}
```

Genel Toplam için kullanılacak formül;

```
{{ sale|sum(attribute='order_amount') }}
```

{% hint style="info" %}
**Ne zaman kullanılır?:** Hızlı özet gereken durumlar için uygundur. Ay ayrımı önemsizse veya rapor kısa tutulacaksa v0 tercih edilir.
{% endhint %}

</details>

<details>

<summary><mark style="color:$success;"><strong>v1 — Şehir × Kategori × Ay Detayı</strong></mark></summary>

Her Şehir × Ürün Kategorisi × Ay kombinasyonu için ayrı bir satır üretir. Aynı şehir-kategori çifti farklı aylarda birden fazla satır alır. Aylık trend analizi için uygundur. `SQL` sorgusuna `month` kolonunun hem `SELECT` hem de `GROUP BY` ifadelerine eklenmesi gerekir.

🔗 *<mark style="color:blue;">Şablon dosyası:</mark>*

{% file src="/files/N3WWCvPoTJYeymyznTAd" %}

<mark style="color:yellow;">Döngü yapısı (v1):</mark>&#x20;

Şablonda A10 kolonunda bulunan comment;

```
{% for city, city_grup in sale|groupby('city') %}
{% for category, cat_grup in city_grup|groupby('product_category') %}
{% for ay, grup in cat_grup|groupby('month') %}
```

Şablonda A11 kolonunda bulunan comment;

```
{% endfor %}
{% endfor %}
{% endfor %}
```

Her ayı ayrı satırda görmek için D10 satırında şu formül kullanılmalıdır;

```
{{ ay }}
```

{% hint style="info" %}
**Ne zaman kullanılır?:** Aylık gelişim takibi ve trend analizi için uygundur. Her ay ayrı satırda görünür.
{% endhint %}

</details>

<details>

<summary><mark style="color:$success;"><strong>v2 — Kategori Bazlı Mini Tablolar</strong></mark></summary>

Her ürün kategorisi için kendi başlık satırı, veri satırları ve alt toplamıyla (`TOPLAM`) ayrı bir mini tablo üretir. Kategoriler arasında görsel boşluk bulunur. Raporun en sonunda tüm kategorileri kapsayan tek `GENEL TOPLAM` satırı yer alır. `SQL` sorgusuna `month` kolonu eklenmesi gerekir.

🔗 *<mark style="color:blue;">Şablon dosyası:</mark>*

{% file src="/files/CVmgzDzsYNlqukq1kffG" %}

<mark style="color:yellow;">Döngü yapısı (v2):</mark>&#x20;

Şablonda 7. satırda bulunan comment (kategori başlığı döngüsü için);

```
{% for category, cat_grup in sale|groupby('product_category') %}
```

Şablonda A9 kolonunda bulunan comment (veri döngüsü için);

```
{% for city, city_grup in cat_grup|groupby('city') %}
{% for ay, grup in city_grup|groupby('month') %}
```

Şablonda A19 kolonunda bulunan comment (Her bir kategori tablosunda ayrı ayrı TOPLAM alanının yazdırılabilinmesi için);

```
{% endfor %}
{% endfor %}
```

Şablonda A12 kolonunda bulunan comment (GENEL TOPLAM alanının yazdırılabilmesi için);

```
{% endfor %}
```

{% hint style="info" %}
**Ne zaman kullanılır?:** Sunum raporları ve kategoriler arası karşılaştırma için uygundur. Her kategori kendi toplamıyla görünür.
{% endhint %}

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://learn.vispeahen.com/raporlama/sablon-tasarimi/3-sablon-versiyonlari-v0-v1-v2.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
