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

Registered : 108,457

HOME > .NET Framework > Forum > WinApp C# ไม่ทราบว่าผมเขียน SQL ตรงส่วนไหนผิดรึป่าวครับ



 

WinApp C# ไม่ทราบว่าผมเขียน SQL ตรงส่วนไหนผิดรึป่าวครับ

 



Topic : 129251



โพสกระทู้ ( 4,071 )
บทความ ( 23 )



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



Code (SQL)
SELECT tblProductType.pdtID, tblProductType.Barcode, tblProductType.ProductType_1, (SELECT  MONTH( tblProductReceive.[_Date])  from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID) AS m ,
(SELECT sum( tblProductReceive.Count) from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID  ) AS sum
FROM tblProductType;

t1

t2

คือผมจะแยก รายการ แต่ละรายการตามเดือน ครับ

11



Tag : .NET, C#, VS 2012 (.NET 4.x), VS 2013 (.NET 4.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-10-17 18:32:54 By : lamaka.tor View : 412 Reply : 14
 

 

No. 1



โพสกระทู้ ( 8,696 )
บทความ ( 2 )



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


ทำไม เอาคำเฉพาะ มาตั้งชื่อฟีลด์ละครับ

และ แน่ใจหรือเปล่าว่า sub query มีเพียง record เดียว
Code (SQL)
(SELECT  MONTH( tblProductReceive.[_Date])  from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID)

ถ้ามีหลายเรคคอร์ด จะเออเร่อร์

ลองแบบนี้ดู
Code (SQL)
(SELECT top 1  MONTH( tblProductReceive.[_Date])  from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID )







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-17 21:49:31 By : Chaidhanan
 


 

No. 2



โพสกระทู้ ( 4,071 )
บทความ ( 23 )



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

ตอบความคิดเห็นที่ : 1 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-10-17 21:49:31
รายละเอียดของการตอบ ::
ใน Access จะสามารถใช้ได้ครับ
โดยตัวโปรแกรมเองจะมี [ ] มาคร่อม เพื่อไม่ให้เป็น keyword ครับ

ปล. งานนี้เป็นของน้อง ป.5 เลยให้ออกแบบเอง ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-17 22:27:19 By : lamaka.tor
 

 

No. 3



โพสกระทู้ ( 4,071 )
บทความ ( 23 )



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


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-18 08:55:32 By : lamaka.tor
 


 

No. 4



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



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


ผมอ่าน sql แล้วก็งง ๆ
เพราะปกติไม่เคยใช้ sub ตรง select เลย
แต่เข้าใจว่าน่าจะไม่ได้เพราะมีใช้คำว่า sum และ Count


ลองใช้แบบนี้ดูครับ
ผมก็ไม่เคยใช้ access
ไม่รู้ว่าใช้ได้ไหม

select p.pdtID,p.Barcode,p.ProductType_1,
month(t.[_Date]) as _Month,
sum(t.[Count]) as _Sum
from tblProductType p left join
tblProductReceive t on p.pdtID=t.pdtID
group by p.pdtID,p.Barcode,p.ProductType_1,month(t.[_Date])
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-18 09:55:22 By : fonfire
 


 

No. 5



โพสกระทู้ ( 4,071 )
บทความ ( 23 )



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

ตอบความคิดเห็นที่ : 4 เขียนโดย : fonfire เมื่อวันที่ 2017-10-18 09:55:22
รายละเอียดของการตอบ ::
Code (SQL)
SELECT tblProductType.pdtID, tblProductType.Barcode, tblProductType.ProductType_1, (iif(isnull( (SELECT sum( tblProductReceive.Count) from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID  )),0, (SELECT sum( tblProductReceive.Count) from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID  )) ) AS sumR, (iif(isnull( (SELECT sum( tblProductReceive.SumPrice) from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID  )),0, (SELECT sum( tblProductReceive.SumPrice) from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID  )) ) AS sumRP, (iif(isnull((SELECT sum(  tblProductSale.Count) from tblProductSale where tblProductSale.pdtID = tblProductType.pdtID  )),0,(SELECT sum(  tblProductSale.Count) from tblProductSale where tblProductSale.pdtID = tblProductType.pdtID  ))) AS sumS, (iif(isnull((SELECT sum(  tblProductSale.SumPrice) from tblProductSale where tblProductSale.pdtID = tblProductType.pdtID  )),0,(SELECT sum(  tblProductSale.SumPrice) from tblProductSale where tblProductSale.pdtID = tblProductType.pdtID  ))) AS sumSP, (sumR-sumS) AS sumC
FROM tblProductType;


55

อย่างโค้ดด้านบนที่ผมทำให้น้องเขาก็ได้ยุนะครับท่าน เป็นการรวมทีละรายการ
ทีนี้ พ่อเด็กอยากรู้ว่า เรามีการ รับของ หรือขายของ ต่อเดือนเท่าไหร่

ผมก็เลย ทำเป็นแบบ sum แต่ละรายการ ในแต่ละเดือน ครับ
ถ้า เรา sum แต่ละรายการ

Code (SQL)
SELECT tblProductType.pdtID, tblProductType.Barcode, tblProductType.ProductType_1, (iif(isnull( (SELECT sum( tblProductReceive.Count) from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID  )),0, (SELECT sum( tblProductReceive.Count) from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID  )) ) AS sumR
FROM tblProductType;


จะได้แบบนี้ครับ
33

คราวนี้พอเราจะเอาแต่ละเดือนก็ต้องเพิ่ม

Code (SQL)
 (SELECT  MONTH( tblProductReceive.[_Date])  from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID) AS m 


น่าจะ Error จากตรงนี้แหละครับ

แต่ถ้า เอาแค่
Code (SQL)
SELECT  MONTH( tblProductReceive.[_Date])  from tblProductReceive 



แบบนี้ได้ครับ

44

แต่ถ้า
Code (SQL)
SELECT tblProductType.pdtID, tblProductType.Barcode, tblProductType.ProductType_1, (SELECT  MONTH( tblProductReceive.[_Date])  from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID) AS m ,
(SELECT sum( tblProductReceive.Count) from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID  ) AS sum
FROM tblProductType;


แบบนี้จะ Error

น่าจะเกิดจาก syntex นี่แหละครับ คงไม่ใช่เป็นที่ข้อมูลเพราะ

เอาแค่
Code (SQL)
SELECT  MONTH( tblProductReceive.[_Date])  from tblProductReceive 

ก็ยังรันได้อยู่

ผมคิดว่า

Code (SQL)
.... where tblProductReceive.pdtID = tblProductType.pdtID) AS m


น่าจะผิด แต่ผมมองไม่ออกครับว่ามันผิดที่จุดไหน
เพราะรูปแบบผมก็ก๊อบมาจาก โค้ดที่ เคยใช้ได้มาแก้ นะครับ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-18 10:52:50 By : lamaka.tor
 


 

No. 6



โพสกระทู้ ( 8,696 )
บทความ ( 2 )



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


ผมว่าให้ความสำคัญ ของตาราง ผิดไป
ต้องการดู detail เฉพาะเดือนก็ควรจะคิวรี่ detail เฉพาะเดือน ก่อน แล้วค่อยเสริม ส่วนที่ต้องการเพิ่ม

Code (SQL)
SELECT t.pdtID, t.Barcode, t.ProductType_1, d.[_Date] AS m, sum(d.[Count]) AS s
FROM tblProductReceive AS d 
left join tblProductType As tb1 on t.pdtID = d.pdtID
order by YEAR(d.[_Date]), MONTH(d.[_Date])

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-18 10:56:10 By : Chaidhanan
 


 

No. 7



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



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


ตรงนี้ที่ error

SELECT tblProductType.pdtID, tblProductType.Barcode, tblProductType.ProductType_1, (SELECT MONTH( tblProductReceive.[_Date]) from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID) AS m ,
(SELECT sum( tblProductReceive.Count) from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID ) AS sum
FROM tblProductType;

ผมคิดว่ามาจากตรง AS sum ครับ
งั้นลองแก้เป็น AS sumXXXX ดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-18 11:03:08 By : fonfire
 


 

No. 8



โพสกระทู้ ( 4,071 )
บทความ ( 23 )



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

ตอบความคิดเห็นที่ : 6 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-10-18 10:56:10
รายละเอียดของการตอบ ::
เหมือนว่า พอเราใช้ sum ร่วมกับ join จะไม่ผ่านครับ
เเ

ประมาณนี้ครับ

Code (SQL)
SELECT tblProductType.pdtID, tblProductType.Barcode, tblProductType.ProductType_1, (SELECT  MONTH( tblProductReceive.[_Date])  from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID) AS m ,
(SELECT sum( tblProductReceive.Count) from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID  ) AS sum
FROM tblProductType;


คือ ทำเป็น sub select อีกทีครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-18 11:52:15 By : lamaka.tor
 


 

No. 9



โพสกระทู้ ( 4,071 )
บทความ ( 23 )



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

ตอบความคิดเห็นที่ : 7 เขียนโดย : fonfire เมื่อวันที่ 2017-10-18 11:03:08
รายละเอียดของการตอบ ::
ะะะ

Code (SQL)
SELECT tblProductType.pdtID, tblProductType.Barcode, tblProductType.ProductType_1, (SELECT MONTH( tblProductReceive.[_Date]) from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID) AS m ,
(SELECT sum( tblProductReceive.Count) from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID ) AS sumRRR
FROM tblProductType;


ไม่ได้ครับ แต่ถ้าเอาตรง SELECT MONTH...... ออกจะได้ครับ
Code (SQL)
SELECT tblProductType.pdtID, tblProductType.Barcode, tblProductType.ProductType_1, 
(SELECT sum( tblProductReceive.Count) from tblProductReceive where tblProductReceive.pdtID = tblProductType.pdtID ) AS sumRRR
FROM tblProductType;


555

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-18 11:55:53 By : lamaka.tor
 


 

No. 10



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



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


ใช้ SUM แต่จะเอา COlumn อื่นมาแสดงผลด้วย ไม่ได้อยู่แล้วครับ วิธีแก้ปัญหามีอยู่ 2 ทาง
1. group by ทุก column ยกเว้น column ที่ SUM
2. ใช้ sub query แบบที่คุณทำนั่นแหละครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-18 11:57:00 By : OOP
 


 

No. 11



โพสกระทู้ ( 4,071 )
บทความ ( 23 )



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

ไม่ทราบใครพอจะมีตัวอย่างทำนองให้ศึกษาไม๊ครับ

ประมาณว่า ดูข้อมูลรายการทั้งหมด ในรายเดือน(1-12) ครับ

คือถ้าผมทำแค่เดือนเดียวออกได้ครับ
แต่ทีนี้ผมอยากดูกระประเมิณผลโดยรวม ว่า รายการทั้งหมด ทั้ง 12 เดือนเป็นยังไงครับ

นี่เป็นตัวอย่างโค้ดครับ

https://drive.google.com/open?id=0B5Kw431lnOB8VHJCejRmUnY3SEU


ประวัติการแก้ไข
2017-10-18 12:07:23
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-18 11:58:14 By : lamaka.tor
 


 

No. 12



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



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


ลองแบบนี้ดูครับ
เผื่อจะได้

select p.pdtID,p.Barcode,p.ProductType_1,
month(t.[_Date]) as _Month,year(t.[_Date]) as _Year,
sum(t.[Count]) as _SumRRR
from tblProductType p left join
tblProductReceive t on p.pdtID=t.pdtID
-- Access เข้าใช้ยังไง ใส่ # หัวท้ายใช่ไหมครับ
where t.[_Date] between #2017-01-01# and #2017-12-31#
group by p.pdtID,p.Barcode,p.ProductType_1,month(t.[_Date])
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-18 12:07:26 By : fonfire
 


 

No. 13



โพสกระทู้ ( 4,071 )
บทความ ( 23 )



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

ตอบความคิดเห็นที่ : 12 เขียนโดย : fonfire เมื่อวันที่ 2017-10-18 12:07:26
รายละเอียดของการตอบ ::
Code (SQL)
select p.pdtID,p.Barcode,p.ProductType_1,
month(t.[_Date]) as _Month,
sum(t.[Count]) as _SumRRR
from tblProductType p left join
tblProductReceive t on p.pdtID=t.pdtID
where t.[_Date] between #2017-01-01# and #2017-12-31#
group by p.pdtID,p.Barcode,p.ProductType_1,month(t.[_Date]);


ได้แล้วครับ

1


ขอบคุณมากๆเลยนะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-18 12:24:33 By : lamaka.tor
 


 

No. 14



โพสกระทู้ ( 8,696 )
บทความ ( 2 )



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


Code (SQL)
SELECT t.pdtID, t.Barcode, t.ProductType_1,d.m,d.s
From (select pdtID,d.[_Date] AS m, sum([Count) as s 
from tblProductReceive group by pdtID,[_Date]) AS d 
left join tblProductType As t on t.pdtID = d.pdtID

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-18 12:42:30 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : WinApp C# ไม่ทราบว่าผมเขียน SQL ตรงส่วนไหนผิดรึป่าวครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม , รับทำบัญชี , โรงงานผลิตครีม , สำนักงานบัญชี , รับจดทะเบียนบริษัท , Pangpond , รถมือสอง

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