logo


Welcome Guest! To enable all features please Giriş or Kayıt.

Bildirim

Icon
Error

Ayarlar
Son mesaja git Go to first unread
guven  
#1 Gönderildi : 11 Aralık 2014 Perşembe 16:23:00(UTC)
guven

Sıralama: Newbie

Gruplar: Registered
Katılan: 3.06.2014(UTC)
Mesajlar: 4
Turkey

Merhaba,

Elde etmek istediğim raporu ancak bir pivot table verebildi.
Ama şimdi de pivot table'ı raporda kullanma sorunu yaşıyorum.
normalte tableadapter içinde field olduğu için rapor üzerinde tablo veya
matrixe atama yapılıyor fakat procedure olarak dataset üzerine oluşturduğum
query içinde field yok ve bu da atama yapmaya engel oluşturuyor.
bu konuda şu veya bu şekilde yapmalısın gibi bir çözümün yanında
tablo tasarımın yanlış, şu şekilde yeniden tasarlamalısın gibi bir çözüme de kabülüm doğrusu.

tablolar ve istenilen rapor aşağıdaki gibidir:

tablolar


kod ise:

Kod:
DECLARE @query  AS NVARCHAR(MAX),
    @colsPivot as  NVARCHAR(MAX);


select @colsPivot 
        = STUFF((SELECT ',' + quotename(t.tanim)
                 from tanimlar t             
                 group by t.tanim
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

set @query 
  = 'select k.urun, '+@colspivot+'
      from
      (
        select 
          k.urun,
          value
        from kayitlar k
        unpivot
        (
          value
          for cols in (kisim1, kisim2, kisim3)
        ) un
      ) x
      pivot
      (
        count(value)
        for value in ('+ @colspivot +')
      ) p'

exec sp_executesql @query 



ilgilenenlere şimdiden teşekkür ederim.
mehmetzekikir  
#2 Gönderildi : 15 Aralık 2014 Pazartesi 09:46:28(UTC)
mehmetzekikir

Sıralama: Administration

Gruplar: Administrators
Katılan: 6.05.2014(UTC)
Mesajlar: 670

19 Kere Teşekkür Etti.
152 Mesajına Toplam 253 Kere Teşekkür Edildi.
Originally Posted by: guven Go to Quoted Post
Merhaba,

Elde etmek istediğim raporu ancak bir pivot table verebildi.
Ama şimdi de pivot table'ı raporda kullanma sorunu yaşıyorum.
normalte tableadapter içinde field olduğu için rapor üzerinde tablo veya
matrixe atama yapılıyor fakat procedure olarak dataset üzerine oluşturduğum
query içinde field yok ve bu da atama yapmaya engel oluşturuyor.
bu konuda şu veya bu şekilde yapmalısın gibi bir çözümün yanında
tablo tasarımın yanlış, şu şekilde yeniden tasarlamalısın gibi bir çözüme de kabülüm doğrusu.

tablolar ve istenilen rapor aşağıdaki gibidir:

tablolar


kod ise:

Kod:
DECLARE @query  AS NVARCHAR(MAX),
    @colsPivot as  NVARCHAR(MAX);


select @colsPivot 
        = STUFF((SELECT ',' + quotename(t.tanim)
                 from tanimlar t             
                 group by t.tanim
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

set @query 
  = 'select k.urun, '+@colspivot+'
      from
      (
        select 
          k.urun,
          value
        from kayitlar k
        unpivot
        (
          value
          for cols in (kisim1, kisim2, kisim3)
        ) un
      ) x
      pivot
      (
        count(value)
        for value in ('+ @colspivot +')
      ) p'

exec sp_executesql @query 



ilgilenenlere şimdiden teşekkür ederim.



senden ricam bana tablo create scriptini atarmısın

Sql Server 2016 Eğitimiz 19 Mayıs tarihinde başlayacaktır. 32 Saat Olup Ücret 1450 TL + KDV'dir. Kayıt ve ayrıntılar için tıklayınız

twitter.com/dbakademi
Dua ve teşekkür en büyük servetlere bedel...
guven  
#3 Gönderildi : 15 Aralık 2014 Pazartesi 18:14:54(UTC)
guven

Sıralama: Newbie

Gruplar: Registered
Katılan: 3.06.2014(UTC)
Mesajlar: 4
Turkey

örnek tablolardan farklı ama kayıtlar ve durumlar olarak create scriptleri bu şekilde:

Not: bunu halihazırda çözmüş değilim. Visual studio report designer içersinde
expressionlardan faydalanarak çözmek zorunda kaldım.

Yine de pivot table ile oluşturulmuş sorguyu raporda kullanmanın bir yolu varsa forumda yer bulması sakınca teşkil etmez diye düşünüyorum.


Kod:
USE [DB.MDF]
GO

/****** Object:  Table [dbo].[kayitlar]    Script Date: 15.12.2014 18:07:14 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[kayitlar](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[sira_no] [smallint] NOT NULL,
	[bara_no] [smallint] NOT NULL,
	[urun_adi] [nvarchar](50) NOT NULL,
	[urt_tarihi] [date] NOT NULL,
	[saat] [time](0) NOT NULL,
	[kyt_tarihi] [date] NULL,
	[bolge1] [nvarchar](50) NULL,
	[bolge2] [nvarchar](50) NULL,
	[bolge3] [nvarchar](50) NULL,
	[bolge4] [nvarchar](50) NULL,
	[bolge5] [nvarchar](50) NULL,
	[bolge6] [nvarchar](50) NULL,
	[bolge7] [nvarchar](50) NULL,
	[bolge8] [nvarchar](50) NULL,
	[bolge9] [nvarchar](50) NULL,
	[bolge10] [nvarchar](50) NULL,
	[bolge11] [nvarchar](50) NULL,
	[bolge12] [nvarchar](50) NULL,
 CONSTRAINT [PK__kayitlar__3214EC077695C1E5] PRIMARY KEY CLUSTERED 
(
	[Id] 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





Kod:
USE [DB.MDF]
GO

/****** Object:  Table [dbo].[durumlar]    Script Date: 15.12.2014 18:06:10 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[durumlar](
	[durum_id] [smallint] IDENTITY(1,1) NOT NULL,
	[durum_adi] [nvarchar](50) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[durum_id] 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




Bu konudaki kullanıcılar
Guest
Forumu Atla  
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.