Delphi Can
SQL üzerinde Pivot içindeki in Kullanımı hakkında - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Veri Tabanı (https://www.delphican.com/forumdisplay.php?fid=4)
+--- Forum: MS SQL Server (https://www.delphican.com/forumdisplay.php?fid=103)
+--- Konu Başlığı: SQL üzerinde Pivot içindeki in Kullanımı hakkında (/showthread.php?tid=2073)

Sayfalar: 1 2


SQL üzerinde Pivot içindeki in Kullanımı hakkında - adelphiforumz - 19-03-2018

Herkese Selamlar ve iyi haftalar.

MS Sql server üzerinde Pivot kullanımındaki In ifadesini Select ile yapmak mümkün müdür?
Bu konuda fikri olan var mı?

Teşekkürler.


SQL üzerinde Pivot içindeki in Kullanımı hakkında - csunguray - 19-03-2018

Yapmak istediğinizi kodla örnek verebilir misiniz?


Cvp: SQL üzerinde Pivot içindeki in Kullanımı hakkında - adelphiforumz - 19-03-2018

Resim eklemedim fakat örnek bir data ve sorgu oluşturdum
Yapmak istediğim Pivot'a bağlı In içinde verilen ifadeleri bir Select sorgusu ile çekip göndermek

CREATE TABLE [dbo].[TestPivotAvans](
[IdAvans] [int] IDENTITY(1,1) NOT NULL,
[IdPersonel] [int] NULL CONSTRAINT [DF_TestPivotAvans_IdPersonel]  DEFAULT ((0)),
[Tarih] [datetime] NULL CONSTRAINT [DF_TestPivotAvans_Tarih]  DEFAULT (getdate()),
[Ay] [tinyint] NULL,
[Hafta] [tinyint] NULL,
[Tutar] [decimal](15, 4) NULL CONSTRAINT [DF_TestPivotAvans_Tutar]  DEFAULT ((0)),
CONSTRAINT [PK_TestPivotAvans] PRIMARY KEY CLUSTERED 
(
[IdAvans] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
CREATE TABLE [dbo].[TestPivotPersonel](
[IdPersonel] [int] IDENTITY(1,1) NOT NULL,
[Ad] [nvarchar](50) NULL,
[Soyad] [nvarchar](50) NULL,
CONSTRAINT [PK_TestPivotPersonel] PRIMARY KEY CLUSTERED 
(
[IdPersonel] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
SET IDENTITY_INSERT [dbo].[TestPivotAvans] ON 

GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (1, 1, CAST(N'2018-01-19 00:00:00.000' AS DateTime), 1, 3, CAST(5.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (2, 1, CAST(N'2018-02-01 00:00:00.000' AS DateTime), 2, 5, CAST(8.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (3, 1, CAST(N'2018-02-05 00:00:00.000' AS DateTime), 2, 6, CAST(5.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (4, 1, CAST(N'2018-03-14 00:00:00.000' AS DateTime), 3, 11, CAST(20.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (5, 1, CAST(N'2018-02-14 00:00:00.000' AS DateTime), 2, 7, CAST(40.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (6, 1, CAST(N'2018-03-06 00:00:00.000' AS DateTime), 3, 10, CAST(70.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (7, 1, CAST(N'2018-03-08 00:00:00.000' AS DateTime), 3, 10, CAST(90.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (8, 1, CAST(N'2018-03-05 00:00:00.000' AS DateTime), 3, 10, CAST(45.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (9, 2, CAST(N'2018-02-07 00:00:00.000' AS DateTime), 2, 6, CAST(78.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (10, 2, CAST(N'2018-03-14 00:00:00.000' AS DateTime), 3, 11, CAST(25.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (11, 2, CAST(N'2018-02-21 00:00:00.000' AS DateTime), 2, 8, CAST(65.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (12, 2, CAST(N'2018-01-09 00:00:00.000' AS DateTime), 1, 2, CAST(9.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (13, 2, CAST(N'2018-02-13 00:00:00.000' AS DateTime), 2, 7, CAST(42.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (14, 2, CAST(N'2018-02-19 00:00:00.000' AS DateTime), 2, 8, CAST(15.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (15, 3, CAST(N'2018-02-01 00:00:00.000' AS DateTime), 2, 5, CAST(73.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (16, 3, CAST(N'2018-03-05 00:00:00.000' AS DateTime), 3, 10, CAST(21.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (17, 3, CAST(N'2018-03-12 00:00:00.000' AS DateTime), 3, 11, CAST(85.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (18, 4, CAST(N'2018-02-06 00:00:00.000' AS DateTime), 2, 6, CAST(40.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (19, 4, CAST(N'2018-02-03 00:00:00.000' AS DateTime), 2, 5, CAST(68.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (20, 4, CAST(N'2018-03-05 00:00:00.000' AS DateTime), 3, 10, CAST(20.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (21, 4, CAST(N'2018-02-16 00:00:00.000' AS DateTime), 2, 7, CAST(17.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (22, 4, CAST(N'2018-03-17 00:00:00.000' AS DateTime), 3, 11, CAST(21.0000 AS Decimal(15, 4)))
GO
SET IDENTITY_INSERT [dbo].[TestPivotAvans] OFF
GO
SET IDENTITY_INSERT [dbo].[TestPivotPersonel] ON 

GO
INSERT [dbo].[TestPivotPersonel] ([IdPersonel], [Ad], [Soyad]) VALUES (1, N'Ali', N'Demir')
GO
INSERT [dbo].[TestPivotPersonel] ([IdPersonel], [Ad], [Soyad]) VALUES (2, N'Veli', N'Tunç')
GO
INSERT [dbo].[TestPivotPersonel] ([IdPersonel], [Ad], [Soyad]) VALUES (3, N'Ayşe', N'Demir')
GO
INSERT [dbo].[TestPivotPersonel] ([IdPersonel], [Ad], [Soyad]) VALUES (4, N'Fatma', N'Tunç')
GO
SET IDENTITY_INSERT [dbo].[TestPivotPersonel] OFF
GO

   Select Ad, Soyad, Ay, Hafta, Tutar
 from TestPivotPersonel PR
      left outer join TestPivotAvans AV on AV.IdPersonel = PR.IdPersonel
  order by Hafta
go

    Select * 
   from 
      (Select PR.Ad, PR.soyad, AV.Hafta, Tutar
         from TestPivotPersonel PR
              left outer join TestPivotAvans AV on AV.IdPersonel = PR.IdPersonel
          ) Tmp
       PIVOT (sum(Tutar) for Hafta in ([2],[3],[5],[6],[7],[8],[10],[11]) ) as A

go 
   



Cvp: SQL üzerinde Pivot içindeki in Kullanımı hakkında - hassur - 19-03-2018

(19-03-2018, Saat: 12:40)adelphiforumz Adlı Kullanıcıdan Alıntı: Resim eklemedim fakat örnek bir data ve sorgu oluşturdum
Yapmak istediğim Pivot'a bağlı In içinde verilen ifadeleri bir Select sorgusu ile çekip göndermek

CREATE TABLE [dbo].[TestPivotAvans](
[IdAvans] [int] IDENTITY(1,1) NOT NULL,
[IdPersonel] [int] NULL CONSTRAINT [DF_TestPivotAvans_IdPersonel]  DEFAULT ((0)),
[Tarih] [datetime] NULL CONSTRAINT [DF_TestPivotAvans_Tarih]  DEFAULT (getdate()),
[Ay] [tinyint] NULL,
[Hafta] [tinyint] NULL,
[Tutar] [decimal](15, 4) NULL CONSTRAINT [DF_TestPivotAvans_Tutar]  DEFAULT ((0)),
CONSTRAINT [PK_TestPivotAvans] PRIMARY KEY CLUSTERED 
(
[IdAvans] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
CREATE TABLE [dbo].[TestPivotPersonel](
[IdPersonel] [int] IDENTITY(1,1) NOT NULL,
[Ad] [nvarchar](50) NULL,
[Soyad] [nvarchar](50) NULL,
CONSTRAINT [PK_TestPivotPersonel] PRIMARY KEY CLUSTERED 
(
[IdPersonel] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
SET IDENTITY_INSERT [dbo].[TestPivotAvans] ON 

GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (1, 1, CAST(N'2018-01-19 00:00:00.000' AS DateTime), 1, 3, CAST(5.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (2, 1, CAST(N'2018-02-01 00:00:00.000' AS DateTime), 2, 5, CAST(8.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (3, 1, CAST(N'2018-02-05 00:00:00.000' AS DateTime), 2, 6, CAST(5.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (4, 1, CAST(N'2018-03-14 00:00:00.000' AS DateTime), 3, 11, CAST(20.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (5, 1, CAST(N'2018-02-14 00:00:00.000' AS DateTime), 2, 7, CAST(40.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (6, 1, CAST(N'2018-03-06 00:00:00.000' AS DateTime), 3, 10, CAST(70.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (7, 1, CAST(N'2018-03-08 00:00:00.000' AS DateTime), 3, 10, CAST(90.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (8, 1, CAST(N'2018-03-05 00:00:00.000' AS DateTime), 3, 10, CAST(45.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (9, 2, CAST(N'2018-02-07 00:00:00.000' AS DateTime), 2, 6, CAST(78.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (10, 2, CAST(N'2018-03-14 00:00:00.000' AS DateTime), 3, 11, CAST(25.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (11, 2, CAST(N'2018-02-21 00:00:00.000' AS DateTime), 2, 8, CAST(65.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (12, 2, CAST(N'2018-01-09 00:00:00.000' AS DateTime), 1, 2, CAST(9.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (13, 2, CAST(N'2018-02-13 00:00:00.000' AS DateTime), 2, 7, CAST(42.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (14, 2, CAST(N'2018-02-19 00:00:00.000' AS DateTime), 2, 8, CAST(15.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (15, 3, CAST(N'2018-02-01 00:00:00.000' AS DateTime), 2, 5, CAST(73.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (16, 3, CAST(N'2018-03-05 00:00:00.000' AS DateTime), 3, 10, CAST(21.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (17, 3, CAST(N'2018-03-12 00:00:00.000' AS DateTime), 3, 11, CAST(85.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (18, 4, CAST(N'2018-02-06 00:00:00.000' AS DateTime), 2, 6, CAST(40.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (19, 4, CAST(N'2018-02-03 00:00:00.000' AS DateTime), 2, 5, CAST(68.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (20, 4, CAST(N'2018-03-05 00:00:00.000' AS DateTime), 3, 10, CAST(20.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (21, 4, CAST(N'2018-02-16 00:00:00.000' AS DateTime), 2, 7, CAST(17.0000 AS Decimal(15, 4)))
GO
INSERT [dbo].[TestPivotAvans] ([IdAvans], [IdPersonel], [Tarih], [Ay], [Hafta], [Tutar]) VALUES (22, 4, CAST(N'2018-03-17 00:00:00.000' AS DateTime), 3, 11, CAST(21.0000 AS Decimal(15, 4)))
GO
SET IDENTITY_INSERT [dbo].[TestPivotAvans] OFF
GO
SET IDENTITY_INSERT [dbo].[TestPivotPersonel] ON 

GO
INSERT [dbo].[TestPivotPersonel] ([IdPersonel], [Ad], [Soyad]) VALUES (1, N'Ali', N'Demir')
GO
INSERT [dbo].[TestPivotPersonel] ([IdPersonel], [Ad], [Soyad]) VALUES (2, N'Veli', N'Tunç')
GO
INSERT [dbo].[TestPivotPersonel] ([IdPersonel], [Ad], [Soyad]) VALUES (3, N'Ayşe', N'Demir')
GO
INSERT [dbo].[TestPivotPersonel] ([IdPersonel], [Ad], [Soyad]) VALUES (4, N'Fatma', N'Tunç')
GO
SET IDENTITY_INSERT [dbo].[TestPivotPersonel] OFF
GO

   Select Ad, Soyad, Ay, Hafta, Tutar
 from TestPivotPersonel PR
      left outer join TestPivotAvans AV on AV.IdPersonel = PR.IdPersonel
  order by Hafta
go

    Select * 
   from 
      (Select PR.Ad, PR.soyad, AV.Hafta, Tutar
         from TestPivotPersonel PR
              left outer join TestPivotAvans AV on AV.IdPersonel = PR.IdPersonel
          ) Tmp
       PIVOT (sum(Tutar) for Hafta in ([2],[3],[5],[6],[7],[8],[10],[11]) ) as A

go 
   



Banada böyle bir sorgu lazım olmuştu. Ben şu şekilde çözdüm in içerisine yazağım değerleri bir string değişkenine dögü yardımı ile doldurdum ve aşağıdaki gibi kullandım

SET @LIST=N' 
    SELECT *
FROM (
     SELECT
      T.CARIKODU
     ,T.UNVAN
 ,T.FIRMANO
 ,T.VERGINO
     ,sum(T.BAKIYE) as BAKIYE ,
 (select sum(BAKIYE) FROM #LISTE L WHERE L.VERGINO=T.VERGINO) AS GENELTOPLAM
     FROM #LISTE T      
     group by CARIKODU ,UNVAN,VERGINO,FIRMANO
    ) as gTablo 
PIVOT
(
 SUM(gTablo.BAKIYE)
 FOR FIRMANO IN ('+@FIRMALAR+')
)
AS p'
    
EXEC (@LIST)



SQL üzerinde Pivot içindeki in Kullanımı hakkında - adelphiforumz - 19-03-2018

hassur bende aynı şekilde kullanıyorum fakat select ile alınması mümkün olurmu onu öğrenmek istedim yada başka kullanım yolları varmıdır acaba


Cvp: SQL üzerinde Pivot içindeki in Kullanımı hakkında - elixir84 - 19-03-2018

(19-03-2018, Saat: 14:20)adelphiforumz Adlı Kullanıcıdan Alıntı: hassur bende aynı şekilde kullanıyorum fakat select ile alınması mümkün olurmu onu öğrenmek istedim yada başka kullanım yolları varmıdır acaba

Tam olarak neyi görmek? Ben soruyu tam anlamadım da.


SQL üzerinde Pivot içindeki in Kullanımı hakkında - adelphiforumz - 19-03-2018

Yaptığım örneği çalıştırabilirseniz gelen sonuçta yapmak istediğimi görürsünüz
Yani
PIVOT (sum(Tutar) for Hafta in ([2],[3],[5],[6],[7],[8],[10],[11]) ) as A kısmındaki
köşeli parantez içeriğini
Select ile verebilirmiyim Soru tam olarak bu
PIVOT (sum(Tutar) for Hafta in ((Select X From XXX group by X)) ) as A


Cvp: SQL üzerinde Pivot içindeki in Kullanımı hakkında - elixir84 - 19-03-2018

(19-03-2018, Saat: 15:52)adelphiforumz Adlı Kullanıcıdan Alıntı: Yaptığım örneği çalıştırabilirseniz gelen sonuçta yapmak istediğimi görürsünüz
Yani
PIVOT (sum(Tutar) for Hafta in ([2],[3],[5],[6],[7],[8],[10],[11]) ) as A kısmındaki
köşeli parantez içeriğini
Select ile verebilirmiyim Soru tam olarak bu
PIVOT (sum(Tutar) for Hafta in ((Select X From XXX group by X)) ) as A

Çalıştırdık kardeşim sen bu yazdığını ilk yazsaydın daha açıklayıcı olurdu. Sql Server dynamic Pivot olarak geciyor sanırım.



DECLARE @cols AS NVARCHAR(MAX),
    @query  AS NVARCHAR(MAX);

SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.HAFTA)
            FROM TestPivotAvans c WHERE 1=1
            FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,1,'') 

 set @query = '   Select * 
   from 
      (Select PR.Ad, PR.soyad, AV.Hafta, Tutar
         from TestPivotPersonel PR
              left outer join TestPivotAvans AV on AV.IdPersonel = PR.IdPersonel
          ) Tmp
       PIVOT (sum(Tutar) for Hafta IN ( ' + @cols + ') ) as A'

execute(@query)


SQL üzerinde Pivot içindeki in Kullanımı hakkında - adelphiforumz - 19-03-2018

"elixir84" öncelikle ilginize teşekkürler.
fakat "hassur" arkadaşımıza verdiğim cevap sizin içinde geçerli
Yani Select ile direkt yapmak, ayrı bir string içine atarak değil,
Öğrenmeye çalıştığım şey buydu


Cvp: SQL üzerinde Pivot içindeki in Kullanımı hakkında - elixir84 - 19-03-2018

(19-03-2018, Saat: 16:41)adelphiforumz Adlı Kullanıcıdan Alıntı: "elixir84" öncelikle ilginize teşekkürler.
fakat "hassur" arkadaşımıza verdiğim cevap sizin içinde geçerli
Yani Select ile direkt yapmak, ayrı  bir string içine atarak değil,
Öğrenmeye çalıştığım şey buydu

PIVOT komutunun yapısı bu şekilde diye biliyorum. select yapmak istiyorsan benim gönderdiğim örnek gibi kullanman gerekiyor.