|
|
|
VB.NET/SQL รบกวนดูโค้ดให้หน่อยค่ะ จะใส่ Group by แต่มัน error ค่ะ |
|
|
|
|
|
|
|
Dim strSQL As String = ""
'Position-Trained Query
strSQL = "SELECT DISTINCT PositionPerson.PositionId,Training.CourseID, Course.Title, TrainingResult.PersonId, Personnel.TName, Personnel.TLastname,"
'strSQL &= " PositionPerson.PositionId, Description.Dept,"
strSQL &= " Description.Dept,"
strSQL &= " TR_ISO_Type.ISO_Type_Description, TrainingResult.Remarks,Training.TrainingNo,Training.TrainedDate,Training.FinishDate"
strSQL &= " FROM Description INNER JOIN ((((Course INNER JOIN (Training INNER JOIN TrainingResult ON Training.TrainingNo = TrainingResult.TrainingNo)"
strSQL &= " ON Course.Course_Id = Training.CourseID) INNER JOIN Personnel ON TrainingResult.PersonId = Personnel.PersonId) INNER JOIN TR_ISO_Type ON Course.ISO_Type_Id = TR_ISO_Type.ISO_Type_Id)"
strSQL &= " INNER JOIN PositionPerson ON Personnel.PersonId = PositionPerson.PersonId) ON Description.PositionId = PositionPerson.PositionId "
If cboSearch.SelectedIndex = 0 Then 'รหัสหลักสูตร (Course Id)
strSQL &= " AND ((Course.Course_Id) LIKE '%" & txtSearch.Text & "%')"
ElseIf cboSearch.SelectedIndex = 1 Then 'รหัสพนักงาน (Person Id)
strSQL &= " AND ((Personnel.PersonId) LIKE '%" & txtSearch.Text & "%')"
ElseIf cboSearch.SelectedIndex = 2 Then 'ชื่อพนักงาน
strSQL &= " AND ((Personnel.TName) LIKE '%" & txtSearch.Text & "%')"
ElseIf cboSearch.SelectedIndex = 3 Then 'นามสกุลพนักงาน
strSQL &= " AND ((Personnel.TLastname) LIKE '%" & txtSearch.Text & "%')"
ElseIf cboSearch.SelectedIndex = 4 Then 'รหัสตำแหน่งพนักงาน (Position Id)
'strSQL &= " AND ((PositionPerson.PositionId) LIKE '%" & txtSearch.Text & "%')"
ElseIf cboSearch.SelectedIndex = 5 Then 'แผนกงานของพนักงาน (Dept.)
strSQL &= " AND ((Description.Dept) LIKE '%" & txtSearch.Text & "%')"
End If
strSQL &= " AND ((TrainingResult.Remarks)='Succeed')"
strSQL &= " AND ((Course.PositionNeed)='1')"
strSQL &= " AND ((Personnel.InactiveReason) Is Null)"
strSQL &= " AND ((PositionPerson.Main)=FALSE)"
strSQL &= " )"
strSQL &= "ORDER BY Training.CourseID ASC,"
strSQL &= "GROUP BY Training.Training.TrainingNo" 'จะใส่แบบนี้ค่ะ แต่ใส่แล้วมัน error
strSQL &= "GROUP BY Training.Training.TrainingNo" 'จะใส่แบบนี้ค่ะ แต่ใส่แล้วมัน error
ไม่ทราบว่าต้องใส่แบบไหน ลองใส่แบบด้านบน แล้ว error
Tag : .NET, Ms Access, VS 2008 (.NET 3.x)
|
|
|
|
|
|
Date :
2013-08-02 12:05:04 |
By :
nan |
View :
1096 |
Reply :
23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลอง
strSQL &= "GROUP BY Training.TrainingNo"
ดูครับ เผื่อได้
|
|
|
|
|
Date :
2013-08-02 12:11:18 |
By :
fonfire |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ข้อมูลแถวที่ 1 = 1 1 1 1
ข้อมูลแถวที่ 2 = 1 1 1 2
ถ้าจะแยกความแตกต่างมันต้องแยกถึง Columns ที่ 4 นั่นคือ
Group By Column1, Column2, Column3, Column4
Visual FoxPro Version ล่าสุดคือ 9 มันแยกได้ ด้วยเหตุนี้ Visual FoxPro ถึงไม่มี Version 10 (Microsoft บอกว่าไม่มี Version 10)
[x] Microsoft ไม่ได้บอก แต่ผมคิดว่า MS ยกเอา Visual FoxPro มาวางบน SQL Server นั่นคือ Store Procedure
|
|
|
|
|
Date :
2013-08-02 13:00:25 |
By :
ผ่านมา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
strSQL &= "ORDER BY Training.CourseID ASC," ---->>> น่าจะต้องเอาคอมม่าออกด้วยครับ ^__^
|
|
|
|
|
Date :
2013-08-02 13:04:23 |
By :
fonfire |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเอาออกแล้วค่ะ ใส่แบบนี้ยัง error
|
|
|
|
|
Date :
2013-08-02 13:50:50 |
By :
nan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
strSQL &= "ORDER BY Training.CourseID ASC"
strSQL &= "GROUP BY Training.TrainingNo"
ลองแบบนี้แล้ว error ตามภาพด้สนบน
|
|
|
|
|
Date :
2013-08-02 13:53:11 |
By :
nan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ้อ ปกติถ้าชอบเขียนแบบ & ไปเรื่อย ๆ
แนะนำให้ใส่วรรคไว้ข้างหน้าตลอดน่ะครับ จะได้ไม่งง
เช่น
strSQL &= " ORDER BY Training.CourseID ASC"
strSQL &= " GROUP BY Training.TrainingNo"
^__^"
|
|
|
|
|
Date :
2013-08-02 14:05:23 |
By :
fonfire |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. เจ้าของกระทู้ ลองทำความเข้าใจ #NO3
2. คุณ fonfire ลองพิจารณาดูคำถามของเจ้าของกระทู้ (Join กันอิรุงตุงนัง) ให้ดีครับ มันไม่ธรรมดา
(เป็นคนมีน้ำใจ ผมชื่นชมเป็นการส่วนตัว)
3. หนึ่งและสองของกระทู้นี้ #13 ผมจะบอกว่า "ผมเติบโตมาจาก Dbase/FoxBase/RDBMS"
ผม Select ครั้งหนึ่งครั้งจาก PO/SO จนถึงขั้นต่ำระบบ GL
หลายฯ ร้อย Tables
1., 2., 3. ถ้าคุณมีความพยายาม มันทำได้อยู่แล้ว ครับ
|
|
|
|
|
Date :
2013-08-02 14:32:02 |
By :
ผ่านมา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณผ่านมา มากครับ แต่ว่าผมขี้เกียจอ่านอะครับ เห็นอะไรมันผิดหูผิดตาก็ตอบไปตามนั้นครับ ^___^ (เหมือนเป็นคนเลวยังไงไม่รู้)
|
|
|
|
|
Date :
2013-08-02 14:51:57 |
By :
fonfire |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากค่ะ ที่ช่วยตอบ
เดี่ยวจะนั่งไล่ดูค่ะ เพราะโดค้ดไม่ได้เขียนเอง เป็นโปรแกรมเก่าที่ต้องแก้ไขค่ะ เลยงงๆอยู่
|
|
|
|
|
Date :
2013-08-02 15:08:27 |
By :
nan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ORDER BY Training.CourseID ASC, <- ต้องไม่มี Comma ตรงนี้ครับ
และอีกอย่างคำสั่ง ORDER BY ต้องอยู่เป็นชุดท้ายของคำสั่ง SQL ครับ
|
|
|
|
|
Date :
2013-08-02 16:35:53 |
By :
anucham |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
น่าจะเกิดจากการ Join แล้วไปโดน table ที่มี 2 row ครับ
ถ้าจะเอาแบบง่ายเลยก็ใส่ Distinct เข้าไปครับ
ถ้าเอาแบบยาก select * ไปเลย แล้วดูว่าข้อมูล field ไหนมันต่างกัน
แล้วข้อมูลนั้นมันมาจากไหน แล้วค่อยไปหาวิธีแก้อีกที ^___^ "
|
|
|
|
|
Date :
2013-08-02 17:01:49 |
By :
fonfire |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เห็นการ Select ผมก็ไม่อยากอ่านต่อละ
|
ประวัติการแก้ไข 2013-08-02 18:21:31
|
|
|
|
Date :
2013-08-02 18:21:18 |
By :
01000010 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|