DECLARE
  @tgl_transaksi_mulai DATETIME = '2013-01-01',
  @tgl_transaki_sampai DATETIME = '2013-03-30'
SELECT
  polis.id_polis,
  polis.no_polis,
  link_nasabah.id_link_nasabah,
  --link_nasabah.id_jenis_investasi,
  ji.deskripsi AS jenis_investasi,
  dbo.func_fixed_date(link_nasabah.tgl_berlaku) AS tgl_berlaku,
  link_transaksi.tgl_awal_transaksi,
  link_transaksi.tgl_akhir_transaksi
FROM
  polis
  INNER JOIN link_nasabah ON polis.no_polis = link_nasabah.no_polis 
	--and dbo.func_fixed_date(polis.tgl_berlaku)=dbo.func_fixed_date(link_nasabah.tgl_berlaku)
  INNER JOIN (
              SELECT
                id_link_nasabah,
                MIN(tgl_transaksi) AS tgl_awal_transaksi,
                MAX(tgl_transaksi) AS tgl_akhir_transaksi
              FROM
                link_transaksi 
              WHERE
                id_jenis_transaksi IN ('1', '11', '1A', '24') -- Jenis Transaksi: Top Up Tunggal, Penarikan Dana, Top Up Tunggal HO, Penarikan Dana
              GROUP BY
                id_link_nasabah
              HAVING
                dbo.func_fixed_date(MIN(tgl_transaksi)) >= @tgl_transaksi_mulai
                AND dbo.func_fixed_date(MAX(tgl_transaksi)) <= @tgl_transaki_sampai
             ) AS link_transaksi ON link_nasabah.id_link_nasabah = link_transaksi.id_link_nasabah
  INNER JOIN dbo.jenis_investasi AS ji ON link_nasabah.id_jenis_investasi=ji.id_jenis_investasi
WHERE
  dbo.func_get_kelompok_produk(polis.id_plan_dasar) IN ('11', '10') -- unit link & hybrid
  AND polis.id_polis = dbo.func_get_id_polis_per_tanggal(polis.no_polis, link_nasabah.tgl_berlaku, 0)
	--AND dbo.func_get_id_status_polis_per_tanggal(polis.no_polis, GETDATE() ) in ('00','01','02','03','04','05','06','17') -- polis aktif
  
  --AND link_nasabah.id_jenis_investasi IN ('02', '03', '04', '06') -- fund investmen
  AND link_nasabah.id_jenis_investasi NOT IN ('00') -- semua investasi
  
  --AND polis.tgl_mulai <= link_transaksi.tgl_akhir_transaksi -- polis harus aktif sebelum 2013-06-30'
  
  AND (link_nasabah.id_link_nasabah = dbo.func_get_id_link_nasabah(polis.no_polis, GETDATE()))

ORDER BY
  --dbo.func_fixed_date(link_nasabah.tgl_berlaku)
  link_transaksi.tgl_awal_transaksi
