strsql = "SELECT name_re,COUNT(name_re) AS Cname ,COUNT(status='ว่าง') AS CstatusNull,COUNT(status='ไม่ว่าง') AS CstatusNotNull FROM GoodsKurupan_Data Group By name_re"
ทำแบบนี้ มันไม่ถูกอ่ะครับ รบกวนผู้รู้ด้วยครับ
Tag : .NET, Ms SQL Server 2005, VS 2005 (.NET 2.x)
sql เขียน lambada ในคำสั่งไม่ได้นะครับ
จะนับจำนวนทั้งหมดแปลว่าเราต้องหาจากเทเบิ้ลหลัก
นับจำนวนที่ว่างต้อง left join กับเทเบิ้ลเดียวกันแต่หาเฉพาะ status ว่าง
และนับจำนวนที่ไม่ว่างต้อง left join กับเทเบิ้ลเดียวกันแต่หาเฉพาะ status ไม่ว่าง
ดังนั้นตารางที่เราต้องใช้จะมีทั้งหมด 3 ตารางครับ
select tb_main.name_re,
COUNT(name_re) AS Cname ,
COUNT(tb_free.name_re) AS CstatusNull,
COUNT(tb_notfree.name_re) AS CstatusNotNull
from GoodsKurupan_Data tb_main
left join (select name_re from GoodsKurupan_Data where status='ว่าง') as tb_free on tb_free.name_re = tb_main.name_re
left join (select name_re from GoodsKurupan_Data where status='ไม่ว่าง') as tb_notfree on tb_notfree.name_re = tb_main.name_re
group by tb_main.name_re
strsql = "SELECT name_re, COUNT(CASE WHEN status='เตรียม' THEN 1 ELSE 0 END ) AS หอย, COUNT(CASE WHEN status='แหก' THEN 1 ELSE 0 END ) AS งาม
FROM GoodsKurupan_Data
Group By name_re"