 |
ถามเรื่อง GROUP BY Month ที่ครับ....งม มานาน แสนนาน แล้วครับ ช่วยหน่อยนะครับ |
|
 |
|
|
 |
 |
|
รอ....ผู้ เมตตา....นะครับ
|
 |
 |
 |
 |
Date :
2012-03-15 10:50:31 |
By :
time.toon |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
aDate เก็บเป็น วันเดือนปี หรือ เก็บแค่ เดือน ครับ
|
 |
 |
 |
 |
Date :
2012-03-15 11:01:19 |
By :
Likito |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่รู้ใช้เปล่านะ ผม งงๆ พอดีไม่มี 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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อ่าวมัวแต่ ลอง แปลง format แล้ว group โพสช้าไปนิดเดียว 
ไม่แน่ใจ Microsoft SQL จะ ใช้ DATE_FORMAT ได้เหมือน MySQL ไหม
|
 |
 |
 |
 |
Date :
2012-03-15 11:21:33 |
By :
Likito |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือผมใช้ 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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าเป็น 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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือยังไงครับต้องการ 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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อันนี้แค่จะจัด format ตอนแสดงหรอครับ
มันได้หลายวิธีนะ explode split หรือ date_format นะครับ
|
ประวัติการแก้ไข 2012-03-15 15:28:14
 |
 |
 |
 |
Date :
2012-03-15 15:27:05 |
By :
tongspy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใน MSSQL ใช้ รูปแบบ date_format ไม่ได้นะครับ
แต่มันใช้อีกรูปแบบ แต่ผมไม่รู้ For mat หรือ Syntxt มันนะครับ....
|
 |
 |
 |
 |
Date :
2012-03-15 15:33:57 |
By :
time.toon |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือตัวนี้ $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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อันนี้ไมรู้ได้ไหมนะ ของ 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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอคุณ คุณ 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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ดีใจด้วยครับที่ทำได้
│▒│ /▒/
│▒│/▒/
│▒ /▒/─┬─┐
│▒│▒|▒│▒│
┌┴─┴─┐-┘─┘
│▒┌──┘▒▒▒│
└┐▒▒▒▒▒▒┌┘
└┐▒▒▒▒┌┘
.
|
 |
 |
 |
 |
Date :
2012-03-15 16:23:15 |
By :
tongspy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|