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,027

HOME > PHP > PHP Forum > ถามเรื่อง GROUP BY Month ที่ครับ....งม มานาน แสนนาน แล้วครับ ช่วยหน่อยนะครับ



 

ถามเรื่อง GROUP BY Month ที่ครับ....งม มานาน แสนนาน แล้วครับ ช่วยหน่อยนะครับ

 



Topic : 075571



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

Hall of Fame 2012

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




Code (PHP)
	        SELECT  SUM(b.iMoney) AS IMONEY
                FROM     SaleBillVouch AS a RIGHT OUTER JOIN
                SaleBillVouchs AS b ON a.SBVID = b.SBVID
                WHERE  (a.dDate BETWEEN '$startdate' AND '$enddate') 
                AND        b.cInvCode = '$id'"


ที่ตาราง SaleBillVouch นะครับ มันมี Table "dDate" อยู่ครับ ผมอยากให้มัน GROUP BY month ตามที่ BETWEEN กำหนด ครับ

และ อยากให้ผล SUM "IMONEY" SUM ตาม GROUP ด้วยนะครับ พี่ๆ ช่วย คิดให้ที นะครับ....สาธุ



Tag : PHP, Ms SQL Server 2008









ประวัติการแก้ไข
2012-03-15 10:25:54
2012-03-15 10:26:45
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-03-15 10:25:25 By : time.toon View : 3368 Reply : 19
 

 

No. 1



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

Hall of Fame 2012

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


รอ....ผู้ เมตตา....นะครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 10:50:31 By : time.toon
 


 

No. 2



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



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


aDate เก็บเป็น วันเดือนปี หรือ เก็บแค่ เดือน ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 11:01:19 By : Likito
 

 

No. 3



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

Hall of Fame 2012

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


ตอบความคิดเห็นที่ : 2 เขียนโดย : Likito เมื่อวันที่ 2012-03-15 11:01:19
รายละเอียดของการตอบ ::
เก็บเป็น yy-mm-dd ครับ ผม

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 11:02:20 By : time.toon
 


 

No. 4



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



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


ไม่รู้ใช้เปล่านะ ผม งงๆ พอดีไม่มี database ให้ลอง

Code (PHP)
SELECT  SUM(b.iMoney) AS IMONEY
       FROM     SaleBillVouch AS a right OUTER JOIN
       SaleBillVouchs AS b ON a.SBVID = b.SBVID      
       WHERE  (a.dDate BETWEEN '$startdate' AND '$enddate') 
       AND        b.cInvCode = '$id'"       
      group by date_format(a.dDate,'%m')

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 11:17:56 By : tongspy
 


 

No. 5



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



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


ลอง
Quote:
SELECT SUM(b.iMoney) AS IMONEY
FROM SaleBillVouch AS a RIGHT OUTER JOIN
SaleBillVouchs AS b ON a.SBVID = b.SBVID
WHERE (a.dDate BETWEEN '$startdate' AND '$enddate')
AND b.cInvCode = '$id'"
GROUP BY DATE_FORMAT(a.dDate,'%m')


แปลง format Date ให้เป็นเฉพาะ เดือน ก่อน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 11:19:06 By : Likito
 


 

No. 6



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



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


อ่าวมัวแต่ ลอง แปลง format แล้ว group โพสช้าไปนิดเดียว

ไม่แน่ใจ Microsoft SQL จะ ใช้ DATE_FORMAT ได้เหมือน MySQL ไหม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 11:21:33 By : Likito
 


 

No. 7



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

Hall of Fame 2012

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


คือผมใช้ DB เป็น MSSQL นะครับมันไม่ลองรับ 'DATE_FORMAT' จึง ERROR

Warning: mssql_query() [function.mssql-query]: message: 'DATE_FORMAT' is not a recognized built-in function name.
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 11:25:09 By : time.toon
 


 

No. 8



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



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


ใช้แบบนี้รึเปล่า ไม่แน่ใจ
DateName( Month, a.dDate)


http://stackoverflow.com/questions/45535/get-month-and-year-from-a-datetime-in-sql-server-2005
พอดีไม่มี ms sql ให้ลอง

ยังไงลอง search หาวิธี convert format datetime เพิ่มเติมดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 11:32:44 By : Likito
 


 

No. 9



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



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


select datepart(month,Mydate), datename(month,Mydate)
หรือ
Select Month(SomeDate)

http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=73328
ลองดูเพิ่มเติมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 11:34:27 By : Likito
 


 

No. 10



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



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


ถ้าเป็น mssql ผมไม่ได้ใช้นานแล้วด้วยสิ

ลองดูอันนี้

GROUP BY CONVERT(char(10), a.dDate, 101)


Style CONVERT Format Mask
0 mon dd yyyy hh:miAM (this is the default style)
1 mm/dd/yy
101 mm/dd/yyyy
112 yyyymmdd
126 yyyy-mm-ddThh:mi:ss.mmm (ISO8601 format)


เอามาจากอันนี้ http://www.petefreitag.com/item/687.cfm
แล้วก็อันนี้ http://msdn.microsoft.com/en-us/library/ms187813.aspx

พอดีผมไม่มี sql server ให้ลอง ยังไงลองไปมั่วๆดูน่า ประมาณนี้แระ


ประวัติการแก้ไข
2012-03-15 11:39:21
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 11:35:09 By : tongspy
 


 

No. 11



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

Hall of Fame 2012

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


ขอบคุณทั้งสองท่านครับได้แล้วครับ เหลือตรง AS อีกนิดหน่อยครับ

รายละเอียดของการตอบ ::
SELECT SUM(b.iMoney) AS IMONEY,CONVERT(varchar(10), (a.dDate), 101) AS IMONTH
FROM SaleBillVouch AS a RIGHT OUTER JOIN
SaleBillVouchs AS b ON a.SBVID = b.SBVID
WHERE (a.dDate BETWEEN '$startdate' AND '$enddate')
AND b.cInvCode = '$id'
GROUP BY CONVERT(varchar(10), a.dDate, 101)


ผมเพิ่ม CONVERT(char(10), (a.dDate), 101) AS IMONTH

ใส่ตรงไหนเหรอครับ พี่ๆ หาที่ลงไม่ถูกนะครับ


ประวัติการแก้ไข
2012-03-15 13:23:08
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 13:22:37 By : time.toon
 


 

No. 12



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



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


คือยังไงครับต้องการ select CONVERT(char(10), (a.dDate), 101) AS IMONTH ออกมาด้วยหรืเปล่า


SELECT SUM(b.iMoney) AS IMONEY,CONVERT(varchar(10), a.dDate, 101) AS IMONTH

หรือ(ผมไม่รู้ว่า sql server มันมี MONTH() ไหมนะถ้ามีก็ จะได้ง่ายใช้ )


SELECT SUM(b.iMoney) AS IMONEY,MONTH(a.dDate) AS IMONTH


อันนี้ผมไปหามาน่าจะใช้ได้กับ sql server ตามที่เว็บบอกนะ จะได้ง่ายขึ้นครับ

SQL Server :: Date Function :: DAY ( date )
syntax:DAY ( date )
content:ใช้คืนค่า วันที่ ของ date ที่กำหนด
example:SELECT DAY(createdate) FROM orders
**************************************************************
SQL Server :: Date Function :: MONTH ( date )
syntax:MONTH ( date )
content:ใช้คืนค่า เดือนที่ ของ date ที่กำหนด
example:SELECT MONTH(createdate) FROM orders
***************************************************************
SQL Server :: Date Function :: YEAR ( date )
syntax:YEAR ( date )
content:ใช้คืนค่า ปีที่ ของ date ที่กำหนด
example:SELECT YEAR(createdate) FROM orders

ลองหา cmd sql ในนี้ดูครับมีเยอะอยู่ http://code.function.in.th/sqlserver/date-function
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 13:31:40 By : tongspy
 


 

No. 13



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

Hall of Fame 2012

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


table

Code (PHP)
<?
$id = $_REQUEST['txtid'];
	$startdate = $_GET['txtstart'];
	$enddate = $_GET['txtend'];
$strSQL = "SELECT SUM(b.iMoney) AS IMONEY,
SUM(b.iQuantity) AS IQTY,
CONVERT(char(10), a.dDate, 103) AS 'months'
FROM SaleBillVouch AS a RIGHT OUTER JOIN 
SaleBillVouchs AS b ON a.SBVID = b.SBVID
WHERE (a.dDate BETWEEN '$startdate' AND '$enddate') 
AND b.cInvCode = '$id'
GROUP BY CONVERT(char(10), a.dDate, 103)";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");

?>
<table width="600" border="1">
  <tr>
    <th width="91"> <div align="center">วันที่เปิดบิล </div></th>
    <th width="98"> <div align="center">ราคาที่ขาย </div></th>
    <th width="198"> <div align="center">จำนวนที่ขาย </div></th>

  </tr>
<?
while($objResult = mssql_fetch_array($objQuery))
{
?>
  <tr>
    <td><div align="center"><?=$objResult["months"];?></div></td>
    <td><?=$objResult["IMONEY"];?></td>
    <td><?=$objResult["IQTY"];?></td>

  </tr>
<?
}
?>
</table>
<?
mssql_close($objConnect);
?>
</body>
</html>


ตรง วันที่ขาย นะครับผมอยากให้มันเป็น

02/2012 =
03/2012 =

ไม่เอาวันที่นะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 15:11:34 By : time.toon
 


 

No. 14



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



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


อันนี้แค่จะจัด format ตอนแสดงหรอครับ

มันได้หลายวิธีนะ explode split หรือ date_format นะครับ


ประวัติการแก้ไข
2012-03-15 15:28:14
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 15:27:05 By : tongspy
 


 

No. 15



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

Hall of Fame 2012

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


ใน MSSQL ใช้ รูปแบบ date_format ไม่ได้นะครับ

แต่มันใช้อีกรูปแบบ แต่ผมไม่รู้ For mat หรือ Syntxt มันนะครับ....
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 15:33:57 By : time.toon
 


 

No. 16



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



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


คือตัวนี้ $objResult["months"] มันออกค่ามาเป้นแบบนี้เลยเปล่าครับ 02/02/2012

ถ้าใช้ก็
Code (PHP)
<td><div align="center"><? echo date_format($objResult["months"],'m/y');?></div></td>



น่าจะได้นะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 15:40:03 By : tongspy
 


 

No. 17



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



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


อันนี้ไมรู้ได้ไหมนะ ของ CMD MSSQL

Code (SQL)
SELECT RIGHT(CONVERT(VARCHAR(10), GETDATE(), 103), 7) AS [MM/YYYY]


ลองดูอันนี้ครับการจัดรูปแบบวันที่ของ mssql น่าจะมีครบทุกแบบ

http://www.sql-server-helper.com/tips/date-formats.aspx


ประวัติการแก้ไข
2012-03-15 15:46:11
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 15:45:38 By : tongspy
 


 

No. 18



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

Hall of Fame 2012

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


ขอคุณ คุณ tongspy มากครับที่ติดตาม....แก้ปัญหาให้ผม (ปลื้ม น้ำใจ บอร์ด นี้จริงๆ)

พี่ วิน น่าจะทำปุ่มกด LIKE ให้ด้วยนะครับ อิๆๆ

ได้แล้วละครับตามนี้เลยครับ

Code (PHP)
"SELECT SUM(b.iMoney) AS IMONEY,
SUM(b.iQuantity) AS IQTY,
COUNT(*) as Imonths,
DATEADD(month, DATEDIFF(month, 0, a.dDate),103)AS Imonths
FROM SaleBillVouch AS a RIGHT OUTER JOIN 
SaleBillVouchs AS b ON a.SBVID = b.SBVID
WHERE (a.dDate BETWEEN '$startdate' AND '$enddate') 
AND b.cInvCode = '$id'
GROUP BY DATEADD(month, DATEDIFF(month, 0, a.dDate),103)"


ขอบคุณจริงๆครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 16:05:01 By : time.toon
 


 

No. 19



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



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


ดีใจด้วยครับที่ทำได้



│▒│ /▒/
│▒│/▒/
│▒ /▒/─┬─┐
│▒│▒|▒│▒│
┌┴─┴─┐-┘─┘
│▒┌──┘▒▒▒│
└┐▒▒▒▒▒▒┌┘
└┐▒▒▒▒┌┘
.
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-15 16:23:15 By : tongspy
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ถามเรื่อง GROUP BY Month ที่ครับ....งม มานาน แสนนาน แล้วครับ ช่วยหน่อยนะครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 00
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 อัตราราคา คลิกที่นี่