簡體   English   中英

SQL非聚合樞紐

[英]sql non aggregate pivot

我的查詢是:

    DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
    DECLARE @ColumnName AS NVARCHAR(MAX)

    --Get distinct values of the PIVOT Column 

    SELECT @ColumnName= ISNULL(@ColumnName + ',','') 
           + QUOTENAME(OzellikAdi)
    FROM (SELECT DISTINCT OzellikAdi FROM KategoriDuzYazilar where KategoriId=6864) AS Courses
    print @ColumnName

    SET @DynamicPivotQuery = 
      N'Select * from(select i.IlanId,iduz.Deger,OzellikAdi from Ilan i
    join Kategori k on i.KategoriId=k.KategoriId
    join KategoriDuzYazilar kduz on kduz.KategoriId=k.KategoriId
    join IlanDuzYazilar iduz on iduz.IlanId=i.IlanId
    where i.KategoriId=6864
    )piv
    PIVOT (MAX(Deger) for OzellikAdi in(' + @ColumnName + ')) AS PVTTable'
              print @DynamicPivotQuery
              EXEC sp_executesql @DynamicPivotQuery

OzellikAdi是Ilan的屬性,Deger是OzellikAdi的整數值以及不同表中的值

結果

IlanId  Ada No  Pafta No Parsel No
 426       9       9        9
 433       24      24       24
 434       210     210      210
 435       775     775      775

但是我不想匯總,我必須得到這個結果

IlanId  Ada No  Pafta No Parsel No
 426      5       7        9
 433      13      16       24
 434      210     114      5
 435      775     0        45

KategoriId是可變的

http://sqlfiddle.com/#!3/3d158/1

http://sqlfiddle.com/#!3/3d158/26

問題在於那個查詢

select i.IlanId,iduz.Deger,OzellikAdi from Ilan i
join Kategori k on i.KategoriId=k.KategoriId
join KategoriDuzYazilar kduz on kduz.KategoriId=k.KategoriId
join IlanDuzYazilar iduz on iduz.IlanId=i.IlanId 
and kduz.Id=iduz.KATEGORIDUZYAZILARID
where i.KategoriId=6864

您忘記設置IlanDuzYazilar和KategoriDuzYazilar表之間的關系

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM