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 > .NET Framework > Forum > สอบถามการใช้คำสั่ง SQL SERVER วน LOOP ค่าที่ได้จากการ SELECT



 

สอบถามการใช้คำสั่ง SQL SERVER วน LOOP ค่าที่ได้จากการ SELECT

 



Topic : 124993



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



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




ไม่รู้จะเอาไปถามในกระดานไหน ก่อนอื่นผมออกตัวก่อนเลยว่าไม่คุ้นเคยกับคำสั่ง Sql Server มากนัก เลยมั่วๆหาในเนตมา ตอนนี้ตันแล้ว.. มันแสดงเป็น text ไม่รู้จะให้มันเป็นคำสั่งได้ยังไง ... ถ้างงตรงไหนสอบถามเพิ่มเติมได้ครับ

1.ผมจะทดสอบ PRINT ข้อความออกมา
2.ผมเก็บคำสั่ง Sql Server ไว้ในตัวแปร แล้วทดสอบ PRINT คำสั่งในตัวแปรออกมา..... ที่ผมเก็บไว้ในตัวแปรเพราะ คิดว่าจะได้ใช้ตัวแปรนั้นไป Query หรือยังไงไม่ทราบ เลยเก็บคำสั่งไว้ในตัวแปรก่อน ถ้าไม่จำเป็นก็เอาออกได้เลย
Code (SQL)
BEGIN	
	DECLARE @sName VARCHAR(3)
	DECLARE @valu VARCHAR(MAX)
	DECLARE @query VARCHAR(MAX)

	DECLARE cursor_customer CURSOR FOR 
	SELECT Code FROM BCWarehouse
	
	OPEN cursor_customer 
	FETCH NEXT FROM cursor_customer 
	INTO @sName;
	PRINT 'SELECT (
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseSTO
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = ''STO'')
			) AS STO,'
	SET @query = 'SELECT (
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseSTO
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = ''STO'')
			) AS STO,'
	WHILE (@@FETCH_STATUS = 0)
	BEGIN 		
		SET @valu = '(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouse'+@sName+'
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = '''+@sName+''')
			) AS '+@sName+','
		PRINT @valu
		SET @query = @query + @valu
		FETCH NEXT FROM cursor_customer -- Fetch next cursor
		INTO @sName -- Next into variable
	END	
	PRINT ' StockQty AS stocktotal
			, Code
			, DefStkUnitCode
			FROM dbo.BCITEM'
	SET @query = @query + ' StockQty AS stocktotal
			, Code
			, DefStkUnitCode
			FROM dbo.BCITEM'
	CLOSE cursor_customer; 
	DEALLOCATE cursor_customer;
END

PRINT @query




3.ที่ผมอยากได้คือ อยากเอาคำสั่งนี้มาวน ๆ
Code (SQL)
SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseAIR
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'AIR')
			) AS AIR


โดยวนใส่ค่าที่ได้มาจากการ Select (ด้านล่างนี้)
SELECT Code FROM BCWarehouse WHERE Code NOT IN ('ACC','STR','STO','POS','FMA','RMK')



คำสั่ง SQL Server ที่ออกมาคือ
SELECT (
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseSTO
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'STO')
			) AS STO,(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseAIR
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'AIR')
			) AS AIR,(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseBCD
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'BCD')
			) AS BCD,(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseBCH
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'BCH')
			) AS BCH,(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseCCK
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'CCK')
			) AS CCK,(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseKSK
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'KSK')
			) AS KSK,(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseLK2
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'LK2')
			) AS LK2,(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseLKK
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'LKK')
			) AS LKK,(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseLTC
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'LTC')
			) AS LTC,(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseLTK
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'LTK')
			) AS LTK,(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseLTL
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'LTL')
			) AS LTL,(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseLTM
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'LTM')
			) AS LTM,(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseMMK
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'MMK')
			) AS MMK,(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseRFM
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'RFM')
			) AS RFM,(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseTMK
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'TMK')
			) AS TMK,(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseTUD
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'TUD')
			) AS TUD, StockQty AS stocktotal
			, Code
			, DefStkUnitCode
			FROM dbo.BCITEM




Tag : Ms SQL Server 2008







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-10-18 10:28:02 By : nPointXer View : 1793 Reply : 4
 

 

No. 1



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

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

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

ปกติจะใช้พวก Temp Table ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-18 10:49:32 By : mr.win
 


 

No. 2



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



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


ยังไม่ค่อยเข้าใจหน่ะครับ คล้าย ๆ function ของ php หรือเปล่าครับ พอจะยกตัวอย่างได้ไหม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-18 11:27:40 By : nPointXer
 

 

No. 3



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



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


หก

คือถ้าเปรียบกับของ php จะใช้ loop while แบบนี้หน่ะครับ แล้วคำสั่ง echo แต่ทีนี้คำสั่งที่ผมต้องการมันต้องเสร็จภายใน Sql Server ครับ

Code (SQL)
SELECT (
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouseSTO
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = 'STO')
			) AS STO
======================= LOOP @CODE===================
			,(
				SELECT Qty
				FROM dbo.BCStkWarehouse as BCStkWarehouse@CODE
				WHERE (ItemCode = dbo.BCITEM.Code) 
				AND (UnitCode = dbo.BCITEM.DefStkUnitCode) 
				AND (WHCode = @CODE)
			) AS @CODE
=======================================================
			, Code
			, DefStkUnitCode
			FROM dbo.BCITEM


งงไหมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-18 11:36:10 By : nPointXer
 


 

No. 4



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



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


กำลังหาวิธีเหมือนกันครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-09 16:29:35 By : NoLimit
 

   

ค้นหาข้อมูล


   
 

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