ดูจาก QUERY แล้ว ไม่มีข้อมูล
เงือนไขคือ เลือกเฉพาะปีนี้ เข้าใจถูกแล้วค่ะ
แต่มีเงื่อนไขอื่นอีก >> AND RESV_STTS LIKE '%C' AND RESV.ROOM_ID=ROOM.ROOM_ID
ซึ่งเป็นไป ได้ที่จะทำให้ข้อมูลไม่มีออกมาเลย เพราะ ความหมายของเงื่อนไขที่เชื่อมด้วย AND ทั้งหมด
คือ ต้องตรงกับเงื่อนไขทุกเงื่อนไข ลองมาพิจารณา QUERY ข้างล่างนะคะ คสรนำไป RUN ที่
SQL SERVER GUI ( ไม่แน่ใจว่าใช้ SQLEXPRESS หรือเปล่านะคะ ) เพื่อดูผลค่ะ
Code (C#)
SELECT YEAR(DATE_FROM) AS HAS_YEAR
,COUNT(YEAR(DATE_FROM)) AS TOTAL_REC
FROM RESV ,ROOM
WHERE (RESV_STTS LIKE '%C') AND (RESV.ROOM_ID=ROOM.ROOM_ID)
GROUP BY YEAR(DATE_FROM)
จะได้ปีและจำนวนข้อมูลในปีนั้น และ (RESV_STTS LIKE '%C') ออกมา
บางทีอาจเป็นไปได้ว่าไม่มีข้อมูลปีที่ต้องการ
ส่วนเรื่อง REGION - CULTURE เป็นเรื่อง Default Date time format ค่ะ
แต่ใน Query เราไม่ได้ใช้ Datetime ในรูปแบบสตริงเลย
ดังนั้น จึงไม่มีผลกับความถูกต้องค่ะ
Date :
2010-02-17 21:53:39
By :
blurEye
No. 2
Guest
head]Code (C#)[/head]
SELECT YEAR(DATE_FROM) AS HAS_YEAR
,COUNT(YEAR(DATE_FROM)) AS TOTAL_REC
FROM RESV ,ROOM
WHERE (RESV_STTS LIKE '%C') AND (RESV.ROOM_ID=ROOM.ROOM_ID)
GROUP BY YEAR(DATE_FROM)
เครื่องผมมัน Error ครับ
SQLEXPRESS รึเปล่าผมไม่แน่ใจครับ ที่ผมใช้มันมีมาพร้อมกับ Microsoft Visual Studio 2005 ครับ Code (VB.NET)
Dim connection As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"
Dim sqlroom As String
sqlroom = "SELECT RESV.*,ROOM.ROOM_NAME_THAI FROM RESV,ROOM WHERE (MONTH(DATE_FROM) = MONTH(GETDATE())) AND RESV_STTS LIKE '%C' AND RESV.ROOM_ID=ROOM.ROOM_ID"
Dim conn As New SqlConnection(connection)
conn.Open()
Dim com As New SqlCommand(sqlroom, conn)
Dim dr As SqlDataReader = com.ExecuteReader
GridView1.DataSource = dr
GridView1.DataBind()
dr.Close()
conn.Close()
ผมแปลงมาจากCodeนี้ครับ เป็นการแสดงข้อมูลในเดือนนี้ซึ่งสามารถแสดงข้อมูลได้ แต่ผมเปลี่ยนจาก MONTH เป็น Year ครับ กลับไม่แสดงข้อมูลใดๆเลย