Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > vb.net ให้คำนวณจำนวนรวมย้อนหลัง 3 เดือน ตามวันที่เลือกค่ะ



 

vb.net ให้คำนวณจำนวนรวมย้อนหลัง 3 เดือน ตามวันที่เลือกค่ะ

 



Topic : 038528



โพสกระทู้ ( 137 )
บทความ ( 0 )



สถานะออฟไลน์




ถ้าต้องการให้คำนวณจำนวนสินค้าที่ซื้อเข้ามาย้อนหลัง 3 เดือน จากวันที่เลือก
เช่น เลือกวันที่ 22/04/2009 ข้อมูลที่จะคำนวณก็ต้องดึงมาจากรายการซื้อตั้งแต่วันที่ 22/01/2009 - 22/04/2009
ต้องทำอย่างไรคะ

รบกวนอีกเรื่องค่ะ ถ้าจะให้มีปฎิทินให้เลือก แล้วข้อมูลที่เลือกก็จะอยู่ใน textbox ต้องทำอย่างไรคะ พอดีค้นกระทู้ แล้วเห็นมีคนตอบให้เอา javascrip มาใส่ ก็ลองโหลดมา แต่ไม่เข้าใจเลยค่ะ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-02-08 12:07:19 By : somooo View : 4485 Reply : 10
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Code (VB.NET)
<%
	Dim strDayNow = "09-Feb-2019"
	Dim strDay3Month = DateAdd("m",-3,strDayNow)

	strSQL = "SELECT * FROM orders WHERE ORDER_DATE BETWEEN '"&strDayNow&"' and '"&strDay3Month&"' 
%>







Date : 2010-02-08 12:59:04 By : webmaster
 


 

No. 2



โพสกระทู้ ( 137 )
บทความ ( 0 )



สถานะออฟไลน์


มันไม่ขึ้นอะค่ะ เขียนโค๊ตแบบนี้ค่ะ
Dim strDayNow = "1-Jan-2552"
Dim strDay3Month = DateAdd("m", -3, strDayNow)
sql = "Select sum(b.QTY) as Avg3 from MOR_SO a inner join MOR_SO_Detail b on a.SOID = b.SOID"
sql = sql & " WHERE a.SODate BETWEEN '" & strDayNow & "' and '" & strDay3Month & "' "
พอเอา where ออกมันก็ sum ให้นะค่ะ
ขอรบกวนถามเพิ่มค่ะ
1. strDayNow นี่คือวันที่ที่เราเลือกถูกมั้ยคะ
2. แล้วทำไมต้องเขียน 09-Feb-2019 แบบนี้ค่ะ
3. ถ้าข้อมูลเราเก็บเป็น พ.ศ. กับ ค.ศ. จะต้องทำอย่างไรให้มันเป็น Format เดียวกันคะ
4. ถ้าต้องการเอาข้อมูลโชว์ในดาต้ากริด แล้วแต่ละเซลของดาต้ากริดต้องดึงข้อมูลมาจากต่างตารางกัน ซึ่งมันจอยกันไม่ได้ อย่างนี้ต้องทำอย่างไรหรอคะ

ขอบคุณค่ะ
Date : 2010-02-08 14:30:28 By : somooo
 

 

No. 3



โพสกระทู้ ( 538 )
บทความ ( 3 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ขอตอบอย่างนี้แล้วกัน

Quote:
Dim strDayNow = "1-Jan-2552"
Dim strDay3Month = DateAdd("m", -3, strDayNow)
sql = "Select sum(b.QTY) as Avg3 from MOR_SO a inner join MOR_SO_Detail b on a.SOID = b.SOID"
sql = sql & " WHERE a.SODate BETWEEN '" & strDayNow & "' and '" & strDay3Month & "' "
พอเอา where ออกมันก็ sum ให้นะค่ะ
ขอรบกวนถามเพิ่มค่ะ
1. strDayNow นี่คือวันที่ที่เราเลือกถูกมั้ยคะ
2. แล้วทำไมต้องเขียน 09-Feb-2019 แบบนี้ค่ะ
3. ถ้าข้อมูลเราเก็บเป็น พ.ศ. กับ ค.ศ. จะต้องทำอย่างไรให้มันเป็น Format เดียวกันคะ
4. ถ้าต้องการเอาข้อมูลโชว์ในดาต้ากริด แล้วแต่ละเซลของดาต้ากริดต้องดึงข้อมูลมาจากต่างตารางกัน ซึ่งมันจอยกันไม่ได้ อย่างนี้ต้องทำอย่างไรหรอคะ


Quote:
query script BETWEEN ที่ใช้อ่ะ ที่ถูกควรจะเป็นจาก เก่าไปใหม่นี่ครับ อันนี้มันเป็นจาก ใหม่ไปเก่า ไม่น่าหาเจอนะ ลองเปลี่ยนเป็นแบบนี้ดู ตรงบรรทัดนี้
sql = sql & " WHERE a.SODate BETWEEN '" & strDay3Month & "' and '" & strDayNow & "' "


1. คือวันที่คุณเลือกถูกแล้วครับ
2. จะใช้ format 'dd/MMM/YYYY' หรือแบบไหนก็ได้ครับที่เป็นมาตรฐาน
3. นั่นแหละปัญหาของโปรแกรมเมอร์(เมืองไทย) มือใหม่ ต้องบังคับกันตั้งแต่ตอน insert ข้อมูลเข้าอ่ะครับให้เป็น format เดียวจะ พ.ศ. หรือ ค.ศ. ก็ว่าไป ถ้าไม่บังคับ มันจะติดตรงที่การ setting ค่า Regional ของแต่ละคนแต่ละเครื่องถ้า set เป็น ไทยหมดก็ดีไป แต่ถ้า set คละกันก็ยุ่งล่ะครับซึ่งตรงนี้เป็นอะไรที่ควบคุมยากเพราะเป็นเครื่องของคนอื่นไม่ใช่เครื่องเรา จึงต้องเขียน code บังคับเอง
4. ถ้ามัน query ครั้งเดียวไม่ได้ก็ดึงมาหลายๆ table เลยครับ ไม่จำเป็นต้อง query เดียว select เข้า datatable, datareader, dataset หรืออะไรก็แล้วแต่ที่คุณใช้หลายๆตัวแปรไปเลย ไม่ผิดหรอกครับแล้วก็เอาค่ามาแสดงใส grid ตามที่เราต้องการ

Date : 2010-02-08 14:53:35 By : salapao_codeman
 


 

No. 4



โพสกระทู้ ( 137 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณค่ะที่ช่วยอธิบาย เรื่องโค๊ตทำได้อย่างที่บอก แต่ว่าสงสัยอยู่ค่ะ

3. ที่บอกว่าให้เขียนโค๊ตบังคับเองเนี่ย พอจะมีไกด์ไลน์ให้มั้ยคะ พอดียังอ่อนประสบการณ์อะค่ะ
4. ถ้ามัน query ครั้งเดียวไม่ได้ก็ดึงมาหลายๆ table เลยครับ ไม่จำเป็นต้อง query เดียว select เข้า datatable, datareader, dataset หรืออะไรก็แล้วแต่ที่คุณใช้หลายๆตัวแปรไปเลย ไม่ผิดหรอกครับแล้วก็เอาค่ามาแสดงใส grid ตามที่เราต้องการ ประโยคนี้ก็เข้าใจว่าให้ยัดใส่พวก datatable, datareader, dataset ไปก่อน แต่ไม่เข้าใจว่าจะเอาลงไปในดาต้ากริดยังไงคะ
Date : 2010-02-08 15:12:41 By : somooo
 


 

No. 5



โพสกระทู้ ( 538 )
บทความ ( 3 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


โอ้ ลืมไปปกติ ที่ใช้ๆกันจะใช้เป็น databind นี่เนาะ

แต่กรณีที่ผมว่านี่ต้องสร้างเองทุกส่วนของ grid อ่ะมันถึงจะได้ ท่าทางจะ โหด ถึกไปหน่อย

ลองมาคิดใหม่ ที่ว่าข้อมูลจะมาจากหลายๆ ตารางที่มันจอยกันไม่ได้อ่ะ มีกี่ตารางแล้วไม่มี column ไหน เชื่อมหากันได้เลยเหรอ ลองยกตัวอย่าง column ของ table กลุ่มนั้นมาดูหน่อยได้เปล่า
Date : 2010-02-08 17:12:33 By : salapao_codeman
 


 

No. 6



โพสกระทู้ ( 137 )
บทความ ( 0 )



สถานะออฟไลน์


- สงสัยคงถึกแล้วละค่ะ เพราะว่าตอนนี้ดึงข้อมูลออกมาแล้วก้อเก็บไว้ใน data ทั้งหลาย แล้วก็ให้กริดเรียกอีกที
ยาวน่าดูเลยค่ะ
- ส่วนเรื่องตารางเนี่ยมันหลายตารางมากเลยค่ะที่ต้องใช้ในดาต้ากริด 1 ตัว ยกตัวอย่างไม่ถูกเลยค่ะ
- แต่ว่ามีเรื่องอยากรบกวนค่ะ พอจะบอกได้มั้ยคะว่าถ้าเราจะให้กริดโชว์เฉพาะวันที่ไม่ให้เอาเวลามาโชว์ ต้องใช้ format ไหนคะ พอดีลองหาเอาเองแล้วมาประยุกต์ใช้มันก็ error ค่ะ ใส่อย่างนี้ค่ะ
e.Item.Cells(12).Text = Format(e.Item.Cells(12).Text, "dd/MM/yyy") คือเรียก cells(12) เข้าไปตรงๆ โดยที่ cells(12) มันเรียกฟิลด์วันที่ในดาต้าเบสมาแล้วนะค่ะ กลับได้ข้อมูลเป็นตัวหนังสือ dd/MM/yyy ออกมา
แล้วอย่างนี้จะทำอย่างไรไม่ให้วันที่ออกมาโชว์ได้คะ
Date : 2010-02-08 22:38:23 By : somooo
 


 

No. 7



โพสกระทู้ ( 137 )
บทความ ( 0 )



สถานะออฟไลน์


ตอนนี้ทำเรื่องวันที่ที่ถามไปได้แล้วค่ะ แต่มีปัญหาใหม่อยากจะรบกวนถามค่ะ

ก็คือเรื่องคำนวณจำนวนรวมย้อนหลัง 3 เดือน ตามวันที่เลือก แล้วเอาไปเก็บในดาต้ากริด
ไอสูตรที่จำคำนวณเนี่ยมันต้องดึงมาจากตารางอื่น คืออยากให้มันอิงรหัสสินค้าจาก cells(0)
เขียนไว้อย่างนี้ค่ะ

Dim strDayNow = "1-Jan-2553"
Dim strDay3Month = DateAdd("m", -3, strDayNow)
sql = "Select sum(b.QTY) as Avg3,b.Stockcode from MOR_SO a inner join MOR_SO_Detail b on a.SOID = b.SOID"
sql = sql & " WHERE a.SODate BETWEEN '" & strDay3Month & "' and '" & strDayNow & "' Group by b.StockCode "
ad = New SqlDataAdapter(sql, Conn)
ad.Fill(ds, "MyData")
Dim DView As DataView
DView = ds.Tables("MyData").DefaultView
For Each drowview In DView
Dim SO_OTY = drowview.Item("Avg3")
Dim SO_StockCode = drowview.Item("Stockcode")
e.Item.Cells(4).Text = SO_OTY.ToString()
Next

ผลลัพธ์มันมั่วเลยค่ะ ต้องทำอย่างไรคะ
Date : 2010-02-09 10:57:53 By : somooo
 


 

No. 8



โพสกระทู้ ( 538 )
บทความ ( 3 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


หูย งี้เสร็จตัวนี้ไปเก่งขึ้นเยอะเลย ได้ประสบการณ์และการแก้ไขด้วยตัวเองขนาดนี้

ส่วนที่ถามล่าสุดนี้ ต้องการเอาค่าจาก cell(0) ของ grid ไปเข้าสูตร query คำนวนในตอนแรกที่ถามใช่ป่ะครับ
ก็ตอนที่ทำ grid ที่แสดงค่าใน cell(0) ก็เอามันใส่ใน array ซักตัวด้วยสิครับ พอเสร็จ grid โชว์ตรงนั้นแล้วก็มาวนลูป
ใน array ทำ query โชว์อีกที และเนื่องจากใช้วิธีถึกทำเองเป็นแล้ว ทีนี้เราอยากให้มันโชว์ยังไงก็ได้ตามใจเราแล้วครับ สู้ๆ
Date : 2010-02-09 12:21:55 By : salapao_codeman
 


 

No. 9



โพสกระทู้ ( 137 )
บทความ ( 0 )



สถานะออฟไลน์


จากที่อ่านมาก็เข้าใจว่าให้ยัดรหัสที่ cells(0) ใส่เข้าไปในอาเรย์ แต่ว่าไม่รู้ว่าต้องเขียนอย่างไรสิค่ะ รบกวนขอดูตัวอย่างหน่อยได้มั้ยคะ มันจะได้เห็นภาพ แล้วจะเข้าใจง่ายขึ้นค่ะ
Date : 2010-02-09 12:34:04 By : somooo
 


 

No. 10



โพสกระทู้ ( 538 )
บทความ ( 3 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ขอมาเราจัดให้ ก็เอา script ข้างบนแหละมาทำให้ดู อิอิ

Code (VB.NET)
Dim strDayNow = "1-Jan-2553"
Dim strDay3Month = DateAdd("m", -3, strDayNow)
   sql = "Select sum(b.QTY) as Avg3,b.Stockcode from MOR_SO a inner join MOR_SO_Detail b on a.SOID = b.SOID"
   sql = sql & " WHERE a.SODate BETWEEN '" & strDay3Month & "' and '" & strDayNow & "' Group by b.StockCode "
   ad = New SqlDataAdapter(sql, Conn)
   ad.Fill(ds, "MyData")
Dim DView As DataView
Dim datatoCal() as string  เพิ่มบรรทัดนี้
Dim cntRec as integer  เพิ่มบรรทัดนี้
   DView = ds.Tables("MyData").DefaultView
   cntRec = 0 เพิ่มบรรทัดนี้

   For Each drowview In DView
      Dim SO_OTY = drowview.Item("Avg3")
      Dim SO_StockCode = drowview.Item("Stockcode")
      datatoCal(cntRec) = drowview.Item("Stockcode") เพิ่มบรรทัดนี้
      e.Item.Cells(4).Text = SO_OTY.ToString()
      cntRec+=cntRec เพิ่มบรรทัดนี้
   Next

Date : 2010-02-09 15:09:28 By : salapao_codeman
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : vb.net ให้คำนวณจำนวนรวมย้อนหลัง 3 เดือน ตามวันที่เลือกค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่