Yorumları: 850
Konuları: 149
Kayıt Tarihi: 07-12-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.181 Uzman
19-03-2018, Saat: 10:08
(Son Düzenleme: 19-03-2018, Saat: 11:51, Düzenleyen: csunguray.)
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.
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz.
Yorumları: 354
Konuları: 39
Kayıt Tarihi: 28-03-2017
Rep Puanı: 2.262 Programcı
Yapmak istediğinizi kodla örnek verebilir misiniz?
Yorumları: 850
Konuları: 149
Kayıt Tarihi: 07-12-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.181 Uzman
19-03-2018, Saat: 12:40
(Son Düzenleme: 19-03-2018, Saat: 12:42, Düzenleyen: adelphiforumz.)
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
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz.
Yorumları: 112
Konuları: 27
Kayıt Tarihi: 17-10-2016
Rep Puanı: 414 Acemi
19-03-2018, Saat: 13:52
(Son Düzenleme: 19-03-2018, Saat: 13:53, Düzenleyen: hassur.)
(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)
Yorumları: 850
Konuları: 149
Kayıt Tarihi: 07-12-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.181 Uzman
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
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz.
Yorumları: 255
Konuları: 28
Kayıt Tarihi: 05-05-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.296 Programcı
(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.
Yorumları: 850
Konuları: 149
Kayıt Tarihi: 07-12-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.181 Uzman
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
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz.
Yorumları: 255
Konuları: 28
Kayıt Tarihi: 05-05-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.296 Programcı
(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)
Yorumları: 850
Konuları: 149
Kayıt Tarihi: 07-12-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.181 Uzman
"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
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz.
Yorumları: 255
Konuları: 28
Kayıt Tarihi: 05-05-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.296 Programcı
(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.
|