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 > .NET Framework > Forum > มือใหม่ MS SQL server 2008 ช่วยทีนะครับ ต้องการทำให้ ข้อมูลใน row แยกเป็น column



 

มือใหม่ MS SQL server 2008 ช่วยทีนะครับ ต้องการทำให้ ข้อมูลใน row แยกเป็น column

 



Topic : 115608



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



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




ผมกำลังติดปัญหาอยู่ครับ ว่า อยากจะรีพอร์ท ข้อมูลออกมา ซึ่ง ต้องการ แตก ฟิลด์ ที่ยอุ่ใน ฟิลเดียวกัน ให้แยกฟิลมาต่อกันเป็น row เดียว

ตามรูปครับ



TB

นี่เป้น remark ของ ลูกค้า

TB1

คือ output ที่ต้องการให้มันเป็น แต่ remark ลูกค้า มันมาหลายรอบ ซึ่งจะกลายเป็น1คน ต่อหลาย row

ซึ่งอยากให้ ลูกค้า1คน มีแค่ row เดียว ส่วน remark ที่มีหลายๆอัน(ตามรูป1) ให้แตกเป็นหลายๆคอลัม ตาม Report date ครับ

ขอบคุณมากนะครับ ผมศึกษาด้วยตัวเองมาตลอด คงมาได้แค่นี้จริงๆครับ ตอนเล็กๆไม่เรียนหนังสือ

ผมลองไปศึกษาเกี่ยวกับ Transpose row to colum ไม่ทราบว่ามันใช่ไหม รู้แต่ว่า งงมาก

ขอบคุณมากครับ



Tag : Ms SQL Server 2008, Ms SQL Server 2012







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-04-03 16:47:16 By : baymind View : 2000 Reply : 11
 

 

No. 1



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

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

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

แสดงบนอะไรครับ ถ้าบน Crystal Report อาจจะต้องใช้ Subreport ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-03 20:00:29 By : mr.win
 


 

No. 2



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



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


เป็นรีพอร์ตง่ายๆ บน Excel ครับ

ปัญหาของผมตอนนี้ยังไม่ใช่ จะรีพอร์ทบนอะไรดี

จิงๆแล้วคือ ไม่รุจะคิวรี่ยังไงให้ออกมาตามสเปค T-T
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-04 09:08:59 By : baymind
 

 

No. 3



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



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


ลองดูอันนี้ครับ

http://sqlandme.com/2011/04/27/tsql-concatenate-rows-using-for-xml-path/
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-04 13:40:13 By : fonfire
 


 

No. 4



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



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


อันนี้มันออกแนว concat อะครับ ตามที่อยากได้คือ แยกกันคนละฟิลด์

แต่ก็ขอบคุณมากครับ ความรู้ใหม่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-04 13:52:09 By : baymind
 


 

No. 5



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



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


อ้อ
ต้องขอโทษด้วยครับ
อ่านคำถามไม่เคลียร์
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-04 15:05:29 By : fonfire
 


 

No. 6



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



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


http://sqlandme.com/2011/04/27/tsql-concatenate-rows-using-for-xml-path/


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-04 18:56:01 By : deksoke
 


 

No. 7

Guest


พยายามเข้าใจนะครัช
อยากให้ เอา field remark มา add เพิ่ม หากลูกค้ามี remark หลายอัน
ก็ให้add remark ต่อกันไปตามเวลา
เช่นนี้

ชื่อลูกค้า ; 01-03-2517 ; 02-03-2517

นาย a ; วันนี้แม่งเหนื่อยว่ะ ; วันนี้เหนื่อยกว่าโว้ย
นาย b ; เลียหน้าแข้งซ้ายเจ้านายละ ; วันนี้เลียสองข้างเลย ต้องพกซอสหอยนางรมมามั่ง จืดไม่มีรสชาดละ

คำถามคือ เป็นการแปลงจากตารางที่เป็นแถวลงไป ฉะนั้นวันที่ที่คุณยึดมาเป็น column ทีหลังมันจะมีมาเรื่อยๆ
นั่นคือ จะเกิด column ใหม่มาเรื่อยๆ ซึ่งมันไม่ค่อยถูกหลักเท่าไหร่
ซึ่งคือ query ของคุณ จะเป็น dynamic table
มันออกจะไม่ใช่เพราะปกติเรามักจะกำหนดให้ โครงสร้างของ query มันคงที่
ลองๆ พิจารณาสิ่งที่ต้องการก่อนไหมครัช
มีทางเลือกอะไรที่มันทดแทนกันได้ อาจจะไม่เป๊ะหรืออ้อมๆก็ได้มังครัช

ปล. คำว่า ก็แค่ report ง่ายๆ (ของใครบางคน) นี่ทำให้เซลสมองของ programmer
เสื่อมก่อนวัยมานีกต่อนักแล้วนะครัช
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-05 10:22:24 By : DOG{B}
 


 

No. 8



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



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


To ข้างบน

เห็นด้วยครับ ตอนสั่งนี่ ง๊ายง่าย แหม่

ทางด้านรีพอร์ท ผมตั้งใจไว้ว่า จะให้มันมาต่อคอลัมเพิ่มสักประมาณ 5 คอลัมครับ แต่คิดว่า เอามาต่อให้ได้ก่อนน่าจะง่ายกว่า พอทำได้ค่อยเลื่อนสเต็ปมาเป็นกำหนด คอลัมไว้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-07 09:30:33 By : baymind
 


 

No. 9

Guest


ผมกำลังติดปัญหานี้อยู่พอดีเลย ทำไม่ได้สักที่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-23 21:43:04 By : khao
 


 

No. 10



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



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


ขอบคุณน๊า สำหรับโจทย์ ได้ความรู้เพิ่มมาเลย ปกติก็ไม่เคยเขียนเหมือนกัน
ปล. จริงๆมันไม่ใช่การออกแบบ db ที่ถูกต้องน่ะ เหมือน กระทู้ข้างบนบอก
แต่ไม่เป็นไร ศึกษาเอาเป็นความรู้ล่ะกันเน๊าะ

add_Column

Code (SQL)
create procedure addColumn(@value varchar(150),@id varchar(20)) as
begin
	Declare @max_column varchar(30)
	Declare @column_name varchar(30)
	Declare @sql varchar(150)
	Declare @sql_update varchar(250) 
	select @max_column = max(Column_name)from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='TableA' 
	set @column_name = 'remark'+cast(isnull(replace(@max_column,'remark',''),0)+1 as varchar(15)) --หา Column
	--print @column_name;
	
	set @sql = 'alter Table TableA add  '+@column_name+' varchar(150)' --สร้าง Column
	exec( @sql)
	set @sql_update = 'update TableA set '+@column_name+' = '''+@value+''' where id='+@id+'' -- update ยัดเข้าไป
	exec( @sql_update)
end;


อันนี้เวลาเรียกใช้

Code (SQL)
execute addColumn 'TEST','1'

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-24 10:03:01 By : ipstarone
 


 

No. 11

Guest


Code (SQL)


CREATE FUNCTION [dbo].[fn_RemarkList_By_ContractNo](@ContractNo VARCHAR(20))
RETURNS VARCHAR(MAX)

AS
BEGIN

DECLARE 
@RemarkList VARCHAR(MAX)

SELECT @RemarkList = 
COALESCE(@RemarkList  + ';', '') +
Remark
FROM Table
WHERE [Contract No] = @ContractNo 


RETURN @RemarkList 

END
GO

SELECT [Contract No], dbo.fn_RemarkList_By_ContractNo]([Contract No]) AS Remarks
FROM Handle









แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-05-02 01:09:42 By : JimboH
 

   

ค้นหาข้อมูล


   
 

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