alexa-tracking

Ask rumus SQL

Main Content

1024
1024
KASKUS
51
244
https://www.kaskus.co.id/thread/53bb62cbd675d487138b45c5/ask-rumus-sql
Ask rumus SQL
salam brother

saya ada mau tanya tentang sql

table1 : member_id dan visitor

table 2: member_id dan datetransaksi

kondisinya:
jika ada data yang masuk di table 2, maka jumlah visitor dalam table1 akan bertambah 1.

misal di table 2 ada transaksi
member_id datetransaksi
02100000 070714
02100000 070714
02100000 080714


jadi pada table 1 jumlah visitor nya ada 2

mohon dibantu pencetrahannya

thanks
image-url-apps
ya tinggal bikin insert trigger di table2.

dgn asumsi ada master table member terpisah (bukan table1 master table untuk member) maka :
- jika memberid yg diinsert sudah ada di table1, increment visitornya
- jika belum ada, insert ke table1 dgn visitor=1

mau dihandle dari sisi aplikasi juga sama aja logicnya
Quote:




yang saya buat seperti ini


CREATE TRIGGER visit after INSERT ON TB_SALETRX
FOR EACH ROW BEGIN
UPDATE TB_CRM
SET visit = visit + 1
WHERE
MEMBER_ID = NEW.MEMBER_ID and ;
END$$



misal yang di
memberid trxdate
02100000 070714
02100000 070714

na yang saya bingung di date nya. bagaimana di datenya supaya bisa terhitung 1 x bukan 2 x.

soory brother, masih belajar.

thanks

KASKUS Ads
image-url-apps
Quote:


eh, gimana maksudnya?
bukannya bener jika ada 2 record dgn memberid 02100000 di TB_SALETRX (walau tanggalnya sama) maka nilai visit di tabel TB_CRM bakal jadi 2?

atau pengennya di TB_SALETRX itu ga boleh ada record dgn memberid dan tanggal yang sama gitu?
kalau iya ya jadiin aja dua kolom itu sebagai primary key, beres emoticon-Big Grin
Quote:



pingin nya jika ada 2 record atau lebih dgn memberid 02100000 di TB_SALETRX (walau tanggalnya sama) maka nilai visit di tabel TB_CRM bakal jadi 1 bukan 2
image-url-apps
Quote:


jadi nilai visit di tabel TB_CRM itu pasti 1 ya karena jika ada memberid tersebut di TB_SALETRX biarpun 1,2, atau 100 sekalipun nilai visitnya bakal tetep 1?

ya nggak usah diincrement brarti haha, jadiin aja

UPDATE TB_CRM
SET visit = 1
WHERE
MEMBER_ID = NEW.MEMBER_ID

bener gitu nggak sih yg dimau? asli nggak ngerti kolom visit ini gunanya apaan
Quote:


Visit guna nya untuk menghitung jumlah berpa kali dia transaksi .

DATA AWAL
di tb _crm
member_id=021000000
visit=10

tb_saletrx
jika ada transaksi disitu dihari tanggal yang sama misal
member_id trxdate
021000000 07/07/14
021000000 07/07/14
021000000 07/07/14

na di situ jumlah visit di tb_crm akan menjadi 11 bukan 13

terus di hari berikutnya katakan dia bertransaksi :
member_id trxdate
021000000 08/07/14
021000000 08/07/14
021000000 09/07/14
021000000 10/07/14

jumlah visit di tb crm akan menjadi 14 dari yang semula terakhir update 11.

sorry gan kl udah bikin suhu bingung emoticon-Smilie
image-url-apps
Quote:


ooo, ya brarti SEBELUM insert, cek dulu apakah ada record dengan idmember dan tanggal segitu apa nggak. jika belum ada maka increment visitnya, jika sudah ada nggak usah diincrement emoticon-Smilie
Quote:


jika sudah ada dan kl tdak di increment, gimana visit nya bisa nambah ya gan ?

image-url-apps
Quote:


ya kan emang pengennya nggak nambah.

misal
DATA AWAL
di tb _crm
member_id=021000000
visit=1

dan
member_id trxdate
021000000 07/07/14

ketika dia insert 021000000 08/07/15 dicek belum ada 021000000 di tanggal
08/07/15, maka visit diincrement jadi 2

lalu insert lagi
021000000 08/07/15, dicek sudah ada member id 021000000 untuk tanggal 08/07/15 maka tidak diincrement. nilai visit tetep 2

bukankah begitu yang dimau TS?
Quote:


ya betul gan, itu yang aku mau heheheh.....


tapi bisa minta petunjuk untuk increment nya gan , maksudnya saya harus set increment nya dimana ?

kalau yang saya tangkap, increment nya di visit ? check auto increment

apa bener begitu ?

Quote:


jadi simpel nya harus dipisahkan gan antara 02100000 dengan 070714 dalam database nya kalau udah pisah baru bisa terdeteksi kalau count nya ada 2
image-url-apps
Quote:


hmmm masih belum ngerti ya? langsung gini aja deh

update TB_CRM set visit=(select count(*) from (select distinct kode from TB_SALETRX where TB_SALETRX.member_id=TB_CRM.membe_rid) foo)
×