ไว้คราวหน้า X
ไว้คราวหน้า X
ไม่ต้องแสดงข้อความนี้อีกเลย
ไปหน้าที่ 1, 2
ไปที่หน้า
GO
ตั้งกระทู้ใหม่
ฝากรูป
ผู้ตั้ง
ข้อความ
ออฟไลน์
นักบอลถ้วย ค.
Status:
: 0 ใบ : 0 ใบ
เข้าร่วม: 05 Sep 2013
ตอบ: 8894
ที่อยู่:
โพสเมื่อ: Mon Jun 25, 2018 02:31
[RE: ใครถนัด Programming รบกวนช่วยเหลือหน่อยครับ]
ihum พิมพ์ว่า:
kaikoo พิมพ์ว่า:
Case when SELECT count(*) FROM Transaction where AMount > 10000 AND transactionType = 'Wire' > 3 then 150 else 0

ข้อ 3 sql ประมานนี้ป่ะ  



เงื่อนไขสามวันติดต่อกันน่าจะยังไม่ตรงตามที่โจทย์ต้องการครับ ถ้าจะให้จบใน SQL ผมพยายามคิดละคิดไม่ออก ถ้าโลจิกผมน่ามียาวกว่านี้ อาจจะเป็น select ซ้อน select หรือเขียนเป็น storeprocedures  

ผมติดข้อนี้เหมือนกัน คิดเล่นๆยังคิดไม่ออก มันยากตรงเงื่อนไข 3 วัน "ติดต่อกัน" นี่แหละ
ถ้าผมเป็น ผมเลือกทำ procedure แต่ถ้าจะให้เขียน sql query อย่างเดียว ก็กลับไป
ระลึกชาติก่อน ไม่ได้ใช้มาโคตรนาน
1
0
หากโดน 40 เรื้อน จะถูกแบน
Signature
ออฟไลน์
ซุปตาร์ยูโร
Status:
: 0 ใบ : 0 ใบ
เข้าร่วม: 11 Feb 2016
ตอบ: 13699
ที่อยู่: N/A
โพสเมื่อ: Mon Jun 25, 2018 03:07
[RE: ใครถนัด Programming รบกวนช่วยเหลือหน่อยครับ]
สร้างฟังชั่นน่าจะประมาณนี้รับตัวแปร customerCode มา

create function WireMonitoring(@customerCode NVARCHAR(6))
return int
as
begin


Query น่าจะประมาณนี้ เอาใส่ตัวแปร cursor ไว้ก่อน

select CreateDate from transaction where Amount >= 10000 and TransactionType = 'Wire' and CustomerCode = @customerCode order by CreateDate

แล้ว fetch cursor มาเช็ค โดยลองเอา CreateDate แรกตั้ง แล้ว เช็คว่า CreateDate ที่ fetch มาอีกอันเรียงกันไหม(order by ไว้แล้ว) ถ้าเรียงก็ fetch อันต่อไปมา ถ้าครบ 3 ก็ return 150 ออกไปจาก function เลย ถ้าไม่เรียงก็ต้อง reset CreateDate ตั้งต้นใหม่แล้วก็ทำเหมือนเดิมจนหมด ไม่เจอก็ return 0 ป่ะ

โลจิกชัว แต่เขียนเป็น pl ไม่เป็นละพวกคำสั่ง cursor กับ fetch ลองดูเองละกันนะครับ
แก้ไขล่าสุดโดย DariusXalan เมื่อ Mon Jun 25, 2018 03:22, ทั้งหมด 3 ครั้ง
1
0
หากโดน 40 เรื้อน จะถูกแบน
Don't tell mom I'm in Succersuck



ออฟไลน์
นักเตะอบจ.
Status:
: 0 ใบ : 0 ใบ
เข้าร่วม: 19 Jan 2015
ตอบ: 1982
ที่อยู่: Home
โพสเมื่อ: Mon Jun 25, 2018 07:53
[RE: ใครถนัด Programming รบกวนช่วยเหลือหน่อยครับ]
เห็นแล้วอยากกลับไปเรียน Programming อีกจัง สนุกดี
0
0
หากโดน 40 เรื้อน จะถูกแบน
ไปหน้าที่ 1, 2
ไปที่หน้า
GO
ตั้งกระทู้ใหม่
กรุณาระบุเหตุผลที่จะแจ้งความ
ผู้ต้องหา:
ข้อความ:
Submit
Cancel
กรุณาเลือก Forum และ ประเภทกระทู้
Forum:

ประเภท:
Submit
Cancel