 |
Mysql เปรียบเทียบค่า2ตาราง มาก-น้อยต่างกัน ใช้ where ยังไงครับ |
|
 |
|
|
 |
 |
|
join พื้นฐาน ถ้ายังไม่รู้คำสั่งพื้นฐาน หาอ่านให้รู้ให้เข้าใจก่อน ถ้าอยากจะเป็นและเก่ง
ถ้าไม่อยากจะเป็นและเก่ง ก็จ้างเขาดีกว่า
ทดลองทำก่อนแล้วถ้าติดขัดตรงไหนค่อยเอาโค๊ดมาถาม ให้รู้ว่าคุณมีความใส่ใจที่จะเรียนรู้ที่จะพยายามทำ
|
 |
 |
 |
 |
Date :
2017-08-09 10:04:20 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ช่วยอธิบายให้พอเข้าใจหน่อยได้มั้ยครับ ผมพยายามทั้งวันแล้วก็ไม่ได้
หรือช่วยยกตัวอย่างพอเล็กน้อยได้มั้ยครับ
|
 |
 |
 |
 |
Date :
2017-08-09 18:58:43 |
By :
cles |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เอาโค๊ดที่คุณพยายามมาแสดงหน่อย
|
 |
 |
 |
 |
Date :
2017-08-09 20:47:02 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

Code
Private Sub Bind_dgv_small()
conn.Open()
Dim strSQL As String = "select (product.id_code) as id,(product.code) as code,(product.name_) as name_,(product_cat.cat_name) as cat_name,(product.sell) as sell " + _
",CONCAT(sum(product_in_out.num - product_in_out.num_sell)),' ',product_pack.pack_name as sum_stock ,if(product.status = '1','สมบูรณ์','ระงับ') as status " + _
"from product,product_in_out,product_cat,product_pack where (product.id_code = product_in_out.id_code) and (product.id_cat = product_cat.id) and (product.id_pack = product_pack.id) and (product_in_out.status = '1') and (product.low >= sum_stock) group by product_in_out.id_code order by product.name_"
strSQL_print = strSQL
Dim Cmd As New MySqlCommand(strSQL, conn)
Dim adaptre As New MySqlDataAdapter(Cmd)
Dim data As New DataSet()
adaptre.Fill(data, "data_all")
lbl_reccord.Text = data.Tables("data_all").Rows.Count()
dgv.DataSource = data.Tables("data_all")
dgv.Columns.Clear()
Dim column As DataGridViewTextBoxColumn
column = New DataGridViewTextBoxColumn()
column.DataPropertyName = "id"
column.HeaderText = ""
column.Width = 0
dgv.Columns.Add(column)
dgv.Columns(0).Visible = False 'ซ่อน column
column = New DataGridViewTextBoxColumn()
column.DataPropertyName = "code"
column.HeaderText = "รหัส"
column.Width = 130
dgv.Columns.Add(column)
column = New DataGridViewTextBoxColumn()
column.DataPropertyName = "name_"
column.HeaderText = "ชื่อสินค้า"
column.Width = 150
dgv.Columns.Add(column)
column = New DataGridViewTextBoxColumn()
column.DataPropertyName = "cat_name"
column.HeaderText = "ประเภทสินค้า"
column.Width = 120
dgv.Columns.Add(column)
column = New DataGridViewTextBoxColumn()
column.DataPropertyName = "sell"
column.HeaderText = "ราคาขาย"
column.Width = 90
dgv.Columns.Add(column)
column = New DataGridViewTextBoxColumn()
column.DataPropertyName = "sum_stock"
column.HeaderText = "จำนวนสต๊อก"
column.Width = 110
dgv.Columns.Add(column)
column = New DataGridViewTextBoxColumn()
column.DataPropertyName = "status"
column.HeaderText = "สถานะ"
column.Width = 80
dgv.Columns.Add(column)
conn.Close()
If lbl_reccord.Text = "0" Then
btn_print.Enabled = False
Else
btn_print.Enabled = True
End If
End Sub
|
ประวัติการแก้ไข 2017-08-12 02:47:29
 |
 |
 |
 |
Date :
2017-08-09 21:42:42 |
By :
cles |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
CONCAT(sum(product_in_out.num - product_in_out.num_sell)),' ',product_pack.pack_name as sum_stock
(product.low >= sum_stock)
|
ประวัติการแก้ไข 2017-08-09 21:49:49
 |
 |
 |
 |
Date :
2017-08-09 21:47:03 |
By :
cles |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จุดผิดก่อน ไม่เออเร่อร์แต่ไม่ถูกเพราะวงเล็บครอบผิดที่
CONCAT(sum(product_in_out.num - product_in_out.num_sell)),' ',product_pack.pack_name as sum_stock
ควรจะเป็น
CONCAT(sum(product_in_out.num - product_in_out.num_sell),' ',product_pack.pack_name) as sum_stock
หรือ
CONCAT(sum(product_in_out.num - product_in_out.num_sell)) as sum_stock,' ',product_pack.pack_name
และจากที่คุณใช้ sum() คุณจะใส่ condition เกี่ยวกับ sum ลงใน where clause ไม่ได้
คุณต้องใส่หลังจาก group by ด้วยคำสั่ง having product.low>=sum_stock
และ sum_stock ของคุณก็เป็น string นำมาเปรียบเทียบกัน ก็คงไม่ได้อีก ไม่เออเร่อร์ แต่เพี้ยนแน่นอน
ควรใช้ subquery เข้ามาช่วย
select (product.id_code) as id,(product.code) as code,(product.name_) as name_,(product_cat.cat_name) as cat_name,(product.sell) as sell ,
CONCAT( (inout.stkIN - inout.stkOUT),' ', product_pack.pack_name as sum_stock ,
if(product.status = '1','สมบูรณ์','ระงับ') as status
from product,
product_cat,product_pack ,
(select id_code, sum(num) as stkIN, sum(num_sell) as stkOUT
from product_in_out where status=1
group by id_code) as inout
where (product.id_code = inout.id_code)
and (product.id_cat = product_cat.id)
and (product.id_pack = product_pack.id)
and (product.low >= (inout.stkIN-inouit.stkOUT))
order by product.name
|
 |
 |
 |
 |
Date :
2017-08-10 07:29:38 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณท่านมากครับ
  
|
 |
 |
 |
 |
Date :
2017-08-10 23:02:56 |
By :
cles |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ได้แล้วครับ ขอบคุณท่าน Chaidhanan มากๆครับ


|
 |
 |
 |
 |
Date :
2017-08-12 02:39:55 |
By :
cles |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|