en-UShe-IL
You are here:   Blog
Register   |  Login

Blog Archive:

Maximize
* Can be used in order to search for older blogs Entries

Search in blogs


Blog Categories:

Maximize
* Can be used in order to search for blogs Entries by Categories

Blog Tags:

Maximize
* Can be used in order to search for blogs by keywords

TNWikiSummit


Awared MVP

 


Microsoft® Community Contributor 


Microsoft® Community Contributor


 Read this before you use the blog! Maximize

Recent Entries

Minimize
נוב4

Written by: ronen ariely
04/11/2010 04:12 RssIcon


/*
דירוג רשומות לפי עמודה מסויימת
רוצים למשל לדרג את כל הסטודנטים באותו קורס עבור כל קורס בנפרד

נייצר לנו טבלה חדשה על מנת להראות את הפתרון

בטבלה זו נייצר טבלה פשוט ונכניס בעשרת לולאות 30 רשומות חדשות של סטודנטים רק כדוגמה

כל 10 סטודנטים משוייכים לקורס מסויים

בסיום נציג את הסטודנטים עם דירוג מ 0 עד 9 עבור כל קורס בנפרד
*/
-------------------------------------------------------------------
USE master;
GO
CREATE DATABASE mytest;
GO

-------------------------------------------------------------------
use mytest;
GO
 
create table mytabl (
    [KStudentIDFld] [int] IDENTITY(1,1) NOT NULL,
    [KCoursIDFld] [int] NULL
)
go

-------------------------------------------------------------------

declare @QQ as int;
set @QQ = 0;

while @QQ < 20
begin
    insert into mytabl ([KCoursIDFld]) values (0)
    set @QQ += 1;
end;

set @QQ = 0;
while @QQ < 20
begin
    insert into mytabl ([KCoursIDFld]) values (2)
    set @QQ += 1;
end;

set @QQ = 0;
while @QQ < 20
begin
    insert into mytabl ([KCoursIDFld]) values (3)
    set @QQ += 1;
end;

Go

-------------------------------------------------------------------

select    
    [KStudentIDFld]
    ,[KCoursIDFld]
    ,RANK( ) over(
        Partition
        by [KCoursIDFld]    --    העמודה עליה רוצים לבצע את הפעולה של הדירוג
        order by [KStudentIDFld]    --    קובע את הסידור הפנימי בכל הרשומות של אותו דירוג
        )
from mytabl
GO