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 > Community Zone > Forum > [SQL SEVER] สร้างคอลัมน์ผลคำนวนใน temp table โดยใช้สูตรคำนวน(string) ยังไงครับ



 

[SQL SEVER] สร้างคอลัมน์ผลคำนวนใน temp table โดยใช้สูตรคำนวน(string) ยังไงครับ

 



Topic : 128562



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



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



ข้อมูล
Code (SQL)
MatID	Unit3	QtyPerUnit
0102001	1400	6
0102001	150     6
0102002	670     20


code
Code (SQL)
DECLARE @Formula = '(Unit3 / (QtyPerUnit / 1000) /12)'
DECLARE @TempTbl table (
	MatID varchar(15),Unit3 float,QtyPerUnit Float --Result As @Formula
)

insert into @TempTbl 
select S.MatID, sum(S.Unit3) as Unit3,M.QtyPerUnit from tbStock S
inner join tbMat M on S.MatID = M.MatID
inner join tbSubCategory SC on M.SubCatID = sc.SubCatID
where sc.SubCatID = 'SCID002'
group by S.MatID,M.QtyPerUnit

select *,QtyPerUnit * Unit3 As Result from @TempTbl


ผลลัพทธ์
Code (SQL)
MatID	Unit3	QtyPerUnit  Result
0102001	1550	6  9300
0102002	670     20 13400


ผมอยากทราบว่า ผมกำหนดสูตรคำนวนไว้ใน String แล้วจะให้มันคำนวนจากสูตรนั้นยังไงครับ
เช่นสูตรที่ผลลัพธ์แสดงตอนนี้คือ QtyPerUnit * Unit3 ผมต้องการแทนที่สูตรนี้จากตัวแปร @Formula ยังไงครับ



Tag : Ms SQL Server 2005, Ms SQL Server 2008, Ms SQL Server 2012, Ms SQL Server 2014, Ms SQL Server 2016









ประวัติการแก้ไข
2017-08-17 16:17:31
2017-08-17 16:18:33
2017-08-17 16:24:42
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-08-14 09:43:30 By : anbiun View : 2811 Reply : 4
 

 

No. 1



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

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

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


ลองอ่านเรื่องการสร้าง Store procedure จาก https://www.thaicreate.com/tutorial/sqlserver-stored-procedure.html
- ตอนที่ 4 การสร้าง Declare ตัว Variable และ Assign ค่าให้กับตัวแปร
- ตอนที่ 5 การสร้าง Declare ตัว Table และ Insert ข้อมูลงใน Table พร้อมกับส่งค่ากลับไป






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-08-17 21:24:34 By : ccjpn
 


 

No. 2

Guest


ตอบความคิดเห็นที่ : 1 เขียนโดย : ccjpn เมื่อวันที่ 2017-08-17 21:24:34
รายละเอียดของการตอบ ::
ผมลองแทนสูตรคำนวนด้วย ตัวแปร @Formula แล้วดังนี้
Code (SQL)
select *,@Formula As Result from @TempTbl



ผลลัพทธ์คือ
MatID Unit3 QtyPerUnit Result
0102001 1550 6 (Unit3 / (QtyPerUnit / 1000) /12)
0102002 670 20 (Unit3 / (QtyPerUnit / 1000) /12)

ผมเลยลองอีกวิธีคือเพิ่มสูตรตอนประกาศ temp ดังนี้
Code (SQL)
DECLARE @TempTbl table (
	MatID varchar(15),Unit3 float,QtyPerUnit Float, Result As @Formula
)


ผลแจ้งว่าตัวแปรสร้าง table ไม่ได้
Variables are not allowed in the CREATE TABLE statement.

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

ปล.ผมลองแบบ exec sp_ sql execute แล้ว แต่มันต้องใช้ตารางที่มีอยู่จริง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-08-18 08:08:34 By : anbiun
 

 

No. 3



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



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

ได้แล้วครับ
1. สร้าง Procedure แทน Function
Code (SQL)
CREATE PROCEDURE GetDozen 
	-- Add the parameters for the stored procedure here
	@SubCatID varchar(max),
	@Formula varchar(max)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
drop table ##Temps
drop table ##TempTable
select * into ##Temps
from 
(select S.MatID, sum(S.Unit3) as Unit3,M.QtyPerUnit from tbStock S
inner join tbMat M on S.MatID = M.MatID
inner join tbSubCategory SC on M.SubCatID = sc.SubCatID
where sc.SubCatID = @SubCatID
group by S.MatID,M.QtyPerUnit) data

exec ('SELECT '+ @Formula +' As RES,MatID INTO ##TempTable FROM ##Temps')
select * from ##TempTable

END
GO


เรียกใช้
Code (SQL)
exec GetDozen @SubCatID='scid002',@Formula='Unit3 * QtyPerUnit'

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-08-18 09:07:21 By : anbiun
 


 

No. 4



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

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

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


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-08-20 05:33:29 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : [SQL SEVER] สร้างคอลัมน์ผลคำนวนใน temp table โดยใช้สูตรคำนวน(string) ยังไงครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 02
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 อัตราราคา คลิกที่นี่