|
|
|
สอบถามการ select ข้อมูลแบบแนวตั้ง 3 ปีย้อนหลังจากปีปัจจุบัน vb.net |
|
|
|
|
|
|
|
ตอนนี้ทำรายงานเปรียบเทียบข้อมูลย้อนหลังสามปีจากปีปัญจุปันแต่รู้สึกเหมือนว่าการประมวลผลจะค่อนข้างช้า ไม่ทราบว่ามีวิธีไหนบ้างค่ะที่จะสามารถ select ข้อมูลให้ออกมาแสดงใน data gridview แบบ
รหัสโรค(icd) ชื่อโรค(name) ปี2010(rdate) ปี2011(rdate) ปี2012(rdate)
001 xxxx001 250 500 1000
002 xxxx002 200 500 1770
003 xxxx003 250 550 1080
004 xxxx004 25 500 1000
005 xxxx005 255 550 1600
006 xxxx006 2054 500 1020
007 xxxx007 25 550 1220
008 xxxx008 25 500 1000
009 xxxx009 25 580 1220
010 xxxx010 205 500 10440
ซึ่งเดิมทีแล้วหนูเขียนโค้ดแบบ
Code (VB.NET)
lcBeg = (Year(Date.Now) - 543) - 3
lcEnd = Year(Date.Now) - 543
myCon = New MySqlConnection
myCon.ConnectionString = strConn
myCon.Open()
strSql = "select icd10,icdname1,count(icd10) as cicd10 from opddata where left(icd10,1)<>'Z' and icd10<>'O800' and icd10<>''"
strSql = strSql + " and year(rdate) between ('" & lcBeg & "' ) and ('" & lcEnd & "' )"
strSql = strSql + " group by icd10,icdname1 order by cicd10 desc limit 0,10"
myCom = New MySqlCommand(strSql, myCon)
myDr = myCom.ExecuteReader
dgvData.Rows.Add()
dgvData.Item(0, 0).Value = ""
dgvData.Item(1, 0).Value = ""
dgvData.Item(2, 0).Value = (Year(Date.Now) - 543) - 3
dgvData.Item(3, 0).Value = (Year(Date.Now) - 543) - 2
dgvData.Item(4, 0).Value = (Year(Date.Now) - 543) - 1
Dim i As Integer = 1
While myDr.Read()
dgvData.Rows.Add()
dgvData.Item(0, i).Value = myDr("icd10")
dgvData.Item(1, i).Value = myDr("icdname1")
i += 1
End While
myDr.Close()
'ปี2010
For i = 1 To 10
strSql = "select count(icd10) as cicd10 from opddata where icd10 = '" & dgvData.Item(0, i).Value & "' and Year(rdate) = '" & dgvData.Item(2, 0).Value & "'"
myCom = New MySqlCommand(strSql, myCon)
myDr = myCom.ExecuteReader
While myDr.Read()
dgvData.Rows.Add()
dgvData.Item(2, i).Value = myDr("cicd10")
End While
myDr.Close()
Next
'ปีต่อๆไปก็ทำเหมือน forก่อนหน้านี้แค่เปลี่ยนพศ แต่การทำงานมันค่อนข้างช้า
Tag : .NET, VB.NET
|
|
|
|
|
|
Date :
2013-01-23 13:59:27 |
By :
MooT |
View :
997 |
Reply :
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|