รบกวนถามเรื่องการนำข้อมูลจากฐานข้อมูลไปแสดงใน gridview
ผมอยากจะรบกวนถามคำถามหน่อยนะครับ
ผมมีตารางและข้อมูลในตารางดังนี้
_Order : OrderID,OrderDate,...
OrderDetail : OrderDetailID,ProductID,Quantity,...,OrderID
ProductName : ProductID,ProductName,...,ImgProduct
และตอนนี้ผมต้องการนำทั้ง 3 ตารางมา join กัน เพื่อแสดงข้อมูลใน GridView โดยประกอบด้วย ProductName,Quantity,ImgProduct
และข้อมูลที่นำมาแสดงจะเป็นข้อมูลของวันที่ปัจจุบันเท่านั้น คือ ถ้าวันนี้เป็นวันที่ 30 ก็แสดงข้อมูล ProductName,Quantity,ImgProduct
ของวันที่ 30
โดยรวมกลุ่มของ ProductName และรวมจำนวนของ Quantity ทั้งหมดด้วย เช่น
- เค้กกาแฟ 3 ชิ้น
- เค้กส้ม 1 ชิ้น
- เค้กกาแฟ 1 ชิ้น
ก็แสดงเป็น
- เค้กกาแฟ 4 ชิ้น
- เค้กส้ม 1 ชิ้น
ประมาณนี้อ่ะครับ
ผมต้องเขียนคำสั่งอย่างไรครับ ช่วยแนะนำด้วย
ตอนนี้ที่ผมเขียนเป็นอย่างงี้ครับ
Code
Private Sub getdata()
Dim strquery As New StringBuilder
strquery.Append(" select Product.ProductName,OrderDetail.Quantity,Product.ImgProduct," & _
" Product.ProductID,_Order.OrderID,_Order.OrderDate" & _
" from _Order,OrderDetail,Product" & _
" where _Order.OrderID = OrderDetail.OrderID and OrderDetail.ProductID = Product.ProductID")
strquery.Append("group by ProductName") <<<<< ' ปัญหามันอยู่ตรงนี้อ่ะครับ ใช้ group มันบอกไม่มีข้อมูล'
Dim tb As DataTable = mUtilities.getDatatable(strquery.ToString)
Me.gvProduct.DataSource = tb
Me.gvProduct.DataBind()
End Sub
Tag : .NET, Ms SQL Server 2005, Web (ASP.NET), VB.NET
Date :
2011-01-30 01:26:37
By :
tumdemolish
View :
1113
Reply :
6
และผมต้องการให้มันแสดงรูปด้วยอ่ะครับ
Date :
2011-01-30 01:44:45
By :
tumdemolish
เงียบเหงาเลย
Date :
2011-01-30 16:40:46
By :
tumdemolish
รบกวนหน่อยครับ
Date :
2011-01-31 15:58:22
By :
tumdemolish
พอดีเขียนเป็นแต่ C# นะคะ เลยจะมาบอกแนวคิดละกัน แต่ไม่แน่ใจว่าจะตรงใจรึป่าวนะคะ
คือการ Group โดยปกติแล้ว จะต้อง Group ทุกฟิลด์ที่มีค่าเหมือนกันหมด
ยกตัวอย่างเช่น ถ้าคุณ SELECT แค่ 3 ฟิลด์คือ Product.ProductName, OrderDetail.Quantity, Product.ImgProduct
ถ้าเข้าใจไม่ผิด Product.ImgProduct น่าจะเป็นหน่วยมันหรือเปล่า และ Quantity นี่คือจำนวนชิ้นใช่มั้ยคะ
ถ้าใช่ ดังตัวอย่างที่คุณยกมา
คุณควรจะต้อง SELECT ดังนี้ค่ะ (ขออนุญาตเขียนเป็น query เลยนะคะ)
SELECT Product.ProductName, SUM(OrderDetail.Quantity) AS Quantity, Product.ImgProduct
FROM ...<database name>...
GROUP BY ProductName, ImgProduct
น่าจะประมาณนี้นะคะ
พอดีหนูเองก็มือใหม่ ถ้าผิดพลาดยังไง ก็ช่วยๆกันแนะนำนะคะ ^^
Date :
2011-01-31 17:47:27
By :
Roongine
ตอนนี้ผมทำได้แล้วครับ ดังนี้ครับ
(" SELECT Product.ProductName, SUM(OrderDetail.Quantity) AS Quantity, Product.ImgProduct " & _
" FROM _Order INNER JOIN OrderDetail ON _Order.OrderID = OrderDetail.OrderID INNER JOIN " & _
" Product ON OrderDetail.ProductID = Product.ProductID " & _
" GROUP BY Product.ProductName, Product.ImgProduct")
และในตาราง _Order ผมมีข้อมูลวันที่คือ OrderDate
ตัวอย่าง OrderDate ที่ผมเก็บในฐานข้อมูล : 1/2/2554 2:04:30
ตอนนี้ผมอยาก select เฉพาะข้อมูลของวันที่ปัจจุบันอ่ะครับ ต้องเขียนโค้ดอย่างไรอ่ะครับ แนะนำหน่อยครับ เอาเฉพาะวันที่อ่ะครับ
คือเอาแค่ 1/2/2554 อ่ะครับ
รบกวนหน่อยนะครับ
ขอบคุณล่วงหน้า
Date :
2011-02-01 03:12:57
By :
tumdemolish
แนะนำหน่อยครับ
Date :
2011-02-02 00:03:08
By :
tumdemolish
Load balance : Server 04