 |
|
ถามเกี่ยวกับการ Query SQL แบบนี้ครับ |
|
 |
|
|
 |
 |
|
coalesce( fieldname, 0)
ถ้า fieldname มีค่าเป็น null ให้แทนค่าด้วย 0
|
 |
 |
 |
 |
Date :
2018-06-11 15:10:18 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Table1 เป็น Main ที่เหลือ ใช้ left join
|
 |
 |
 |
 |
Date :
2018-06-11 15:44:55 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
รูปผลลัพธิ์มันขัดแย้งยังไงไม่รู้ จำนวนเป็น 0 แต่รหัสลูกค้าเป็น 1234 ได้ยังไง มันต้องเป็น null ไม่ก็ค่าว่างเปล่าดิ อะลองดูก่อนครับ
Code (SQL)
select TABLE1.ประเภทสินค้า + TABLE1.รหัสสินค้า AS สินค้า
, TABLE1.ชื่อสินค้า
, count(TABLE2.รหัสลูกค้า) AS จำนวนสินค้า
, MAX(TABLE2.รหัสลูกค้า) AS รหัสลูกค้า
from TABLE1
left join TABLE2 on (TABLE1.ประเภทสินค้า = TABLE2.ประเภทสินค้า) AND (TABLE1.รหัสสินค้า=TABLE2.รหัสสินค้า)
-- where TABLE2.รหัสลูกค้า = '1234'
group by TABLE1.ประเภทสินค้า, TABLE1.รหัสสินค้า, TABLE1.ชื่อสินค้า
order by TABLE1.ประเภทสินค้า ASC, TABLE1.รหัสสินค้า ASC

|
ประวัติการแก้ไข 2018-06-11 23:17:07
 |
 |
 |
 |
Date :
2018-06-11 23:15:29 |
By :
nPointXer |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
where TABLE2.รหัสลูกค้า = '1234' เป็นตัวกำหนดหลัก มันก็จะไม่โชว์ทุกๆเรคคอร์ดที่ไม่ใช่ ให้ย้ายเข้าไปไว้ใน
left join table2 on ..... and TABLE2.รหัสลูกค้า = '1234'
|
 |
 |
 |
 |
Date :
2018-06-12 07:19:35 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|