簡體   English   中英

最佳性能 SQL 查詢 SSRS

[英]Best Performance SQL Query SSRS

我正在構建一份報告,但我正處於兩難境地,要遵循哪條路徑才能達到更好的性能。

我有一張桌子

COD | CTYPID | MNT

以上包含COD為主鍵,類型和金額

該報告將包含每個類型作為一列。 這意味着一個COD將為每個CTYPID包含 3 列。

哪一個是最好的:

1-

   Insert into #temp
   Select sum(amount),CTYPID From table
   Group by COD,CTYPIDz

然后我將這張表與我的主表連接起來,其中 CTYPID=1 然后另一個左連接,其中 CTYPID=2 等等

2-

 --insert in a temp table on multiple columns
   insert into #temp
   (Select sum(amount) column1,CTYPID From table where CTYPID=1
   Group by COD)
   Left join (Select sum(amount)column2 ,CTYPID From table where CTYPID=2
   Group by COD)

然后將上面的與我的主表連接起來

另一種選擇是進行條件聚合:

insert into #temp
select
    cod,
    sum(case when ctypid = 1 then mnt else 0 end) mnt_ctypid1,
    sum(case when ctypid = 2 then mnt else 0 end) mnt_ctypid2,
    sum(case when ctypid = 3 then mnt else 0 end) mnt_ctypid3
from mytable 
group by cod

對於此查詢,您需要(cod, ctypid)上的索引(cod, ctypid)該索引可能已經存在,因為這似乎 - 或應該 - 是您的表的主鍵)。

暫無
暫無

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

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