برنامه نویس

به وبلاگ خودتان خوش آمدید.

برنامه نویس

به وبلاگ خودتان خوش آمدید.

نمایش دیتل در کنار هدر در کنارهم در sql server

برای اینکه جزییات یا ردیف های جدول دیتیل به صورت ستون در جدول هدر نمایش داده شوند از کد زیر به عنوان نمونه میتوانید استفاده کنید 


CREATE PROCEDURE OrderExample 

AS


CREATE TABLE #OrdersTable(

OrderNo int,

OrderDate date,

CustomerID int,

TotalItems int,

TotalAmount decimal(10,2)

)

INSERT INTO #OrdersTable VALUES(101, '2016-8-11', 354, 3, 30)

INSERT INTO #OrdersTable VALUES(102, '2016-8-12', 221, 2, 20)

INSERT INTO #OrdersTable VALUES(103, '2016-8-13', 67, 1, 20)

INSERT INTO #OrdersTable VALUES(104, '2016-8-14', 8965, 3, 40)


CREATE table #OrderedItems (

OrderNo int,

OrderItem varchar(10),

OrderQty int

)

INSERT INTO #OrderedItems VALUES(101, 'T-Shirt', 2)

INSERT INTO #OrderedItems VALUES(101, 'Bedsheet', 1)

INSERT INTO #OrderedItems VALUES(102, 'Pants', 2)

INSERT INTO #OrderedItems VALUES(103, 'Quilt', 1)

INSERT INTO #OrderedItems VALUES(104, 'T-Shirt', 2)

INSERT INTO #OrderedItems VALUES(104, 'Pants', 1)


DECLARE @itemNames varchar(max) = 

(SELECT  STUFF(( SELECT DISTINCT ',' + QUOTENAME(OrderItem)

FROM #OrderedItems FOR XML PATH('')), 1, 1, '') AS ColList)



DECLARE @sql varchar(max) = 'SELECT OrderNo, OrderDate, CustomerID, 

TotalItems, TotalAmount,' + @itemNames + ' FROM

(SELECT o.OrderNo, o.OrderDate, o.CustomerID, o.TotalItems, o.TotalAmount,

i.OrderItem, i.OrderQty 

FROM #OrdersTable o

INNER JOIN #OrderedItems i ON i.OrderNo = o.OrderNo) SubQ

PIVOT(SUM(OrderQty) FOR OrderItem IN (' + @itemNames + ')) as pvt'


exec (@sql)


DROP TABLE #OrdersTable

DROP TABLE #OrderedItems

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد