Baca dalam bahasa Inggris

Bagikan melalui


MENGHASILKAN

Berlaku untuk: kolom terhitungTabel terhitungUkurPerhitungan visual

Mengembalikan tabel dengan produk Kartesius di antara setiap baris dalam tabel 1 dan tabel yang dihasilkan dari mengevaluasi tabel2 dalam konteks baris saat ini dari tabel 1.

Sintaksis

GENERATE(<table1>, <table2>)  

Parameter

Istilah Definisi
table1 Ekspresi DAX apa pun yang mengembalikan tabel.
table2 Ekspresi DAX apa pun yang mengembalikan tabel.

Mengembalikan nilai

Tabel dengan produk Kartesius di antara setiap baris dalam tabel 1 dan tabel yang dihasilkan dari mengevaluasi tabel2 dalam konteks baris saat ini dari tabel 1

Komentar

  • Jika evaluasi tabel2 untuk baris saat ini dalam tabel 1 mengembalikan tabel kosong, maka tabel hasil tidak akan berisi baris saat ini dari tabel 1. Ini berbeda dari GENERATEALL() di mana baris saat ini dari table1 akan disertakan dalam hasil dan kolom yang sesuai dengan tabel2 akan memiliki nilai null untuk baris tersebut.

  • Semua nama kolom dari table1 dan table2 harus berbeda atau kesalahan dikembalikan.

  • Fungsi ini tidak didukung untuk digunakan dalam mode DirectQuery saat digunakan dalam kolom terhitung atau aturan keamanan tingkat baris (RLS).

Contoh

Dalam contoh berikut, pengguna menginginkan tabel ringkasan penjualan menurut Wilayah dan Kategori Produk untuk saluran Penjual, seperti tabel berikut:

SalesTerritory[SalesTerritoryGroup] ProductCategory[ProductCategoryName] [Penjualan Penjual]
Eropa Aksesoris $ 142.227,27
Eropa Sepeda $ 9.970.200,44
Eropa Pakaian $ 365.847,63
Eropa Komponen $ 2.214.440,19
Amerika Utara Aksesoris $ 379.305,15
Amerika Utara Sepeda $ 52.403.796,85
Amerika Utara Pakaian $ 1.281.193,26
Amerika Utara Komponen $ 8.882.848,05
Pacific Aksesoris $ 12.769,57
Pacific Sepeda $ 710.677,75
Pacific Pakaian $ 22.902,38
Pacific Komponen $ 108.549,71

Rumus berikut menghasilkan tabel di atas:

GENERATE(  
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])  
,SUMMARIZE(ProductCategory   
, [ProductCategoryName]  
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])  
)  
)  
  1. Pernyataan SUMMARIZE pertama, SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup]), menghasilkan tabel grup wilayah, di mana setiap baris adalah grup wilayah, seperti yang ditunjukkan di bawah ini:

    SalesTerritory[SalesTerritoryGroup]
    Amerika Utara
    Eropa
    Pacific
    NA
  2. Pernyataan SUMMARIZE kedua, SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])), menghasilkan tabel grup Kategori Produk dengan penjualan Penjual untuk setiap grup, seperti yang ditunjukkan di bawah ini:

    ProductCategory[ProductCategoryName] [Penjualan Penjual]
    Sepeda $ 63.084.675,04
    Komponen $ 11.205.837,96
    Pakaian $ 1.669.943,27
    Aksesoris $ 534.301,99
  3. Namun, ketika Anda mengambil tabel di atas dan mengevaluasinya di bawah konteks setiap baris dari tabel grup wilayah, Anda mendapatkan hasil yang berbeda untuk setiap wilayah.