Rank Distint Items In Order Of Appearance
Feb 28, 2008
Hello,
I'm hoping someone can help me out with this. In order to add an sequence dimension in an ssas cube, I need to rank chronological item in a t-sql data set in order of their distinct appearance. I've tried to do this in mdx and there's just no easy way. I've also tried various ways in t-sql to achive, includeing ranking functions, custom udf, etc. To no avail.
The original dataset would look like this.
date, member_id, action
1/1/2008, 123, register
1/2/2008, 123, create_item_a
1/3/2008, 123, create_item_b
1/4/2008, 123, create_item_a
1/5/2008, 123, create_item_c
1/6/2008, 123, create_item_b
I need another column that flags the action in order of appearance, like so
date, member_id, action, appearance_rank
1/1/2008, 123, register, 1
1/2/2008, 123, create_item_a, 2
1/3/2008, 123, create_item_b, 3
1/4/2008, 123, create_item_a,2
1/5/2008, 123, create_item_c,4
1/6/2008, 123, create_item_b,3
So the "register" action would be the first thing a user did, "create_item_a" the second, create_item_b the third. However, the next occurrance of create_item_a would still retain the rank of 2 as it's not a new action for this user. The ranks would be unique to the actions, based on the first time they occurred.
This has been perplexing, but I feel like there is simple way to do this using some of the ranking functions, but just haven't been able to get it figure out.
Any help would be appreciated.
Regards...
View 5 Replies
ADVERTISEMENT
Apr 14, 2006
I want to be able to track my top 100 items sold in the last 60 days. Each night I want to calculate it then compare it with the numbers from the previous night. Then show both ranks. My problem is assigning them ranks. Bascily I have a view that shows the top 200 sorted correctly. I am thinking creating a DTS to make a new table with adding transformations. But I am not sure how to code the Visial Basic. Below is what I thought it would be, but it doesn't work. Get a generic error. Any ideas?dim ranknumranknum = 0Function Main() ranknum += 1 DTSDestination("Rank") = ranknum DTSDestination("ItemNumber") = DTSSource("ItemNumber") DTSDestination("QtySold") = DTSSource("QtySold") Main = DTSTransformStat_OKEnd Function
View 2 Replies
View Related
Feb 8, 2006
Hi,
i want to create a report so that a list of the top 30 records are returned to the report user. In the report i want to have the records position in the list shown (ie the first row should have 1. and the second should be 2. right on down to the 30th having 30.)
how do i achieve this please?
many thanks
FatherJack
View 1 Replies
View Related
Dec 2, 2005
OOPS Sudden inspiration - got it now
Guys
Spent all morning on this - hope someone can help
I've got some select code :
declare @BusinessDate DATETIME
set @BusinessDate = '28 Feb 2005'
select
--?? as period
tdbe.eventid , tdbe.tradeid ,tdbe.cashflowstartdate
from HDD_t_HA HA
join hdd_t_Hedge_Instrument HI on HA.HAId = HI.HAId
join hdd_t_TDB_Event TDBE on HI.EventId = TDBE.EventId
join hdd_t_TDB TDB on TDBE.TradeId = TDB.TradeId
where ha.haid = 29 and
ha.validfrom <= getdate() and ha.validto > getdate()
and tdbe.effectivefrom <= @BusinessDate and tdbe.effectiveto > @BusinessDate
and tdb.effectivefrom <= @BusinessDate and tdb.effectiveto > @BusinessDate
--and tdbe.tradeid = 117
order by tdbe.tradeid , cashflowstartdate
Which produces :
eventid tradeid cashflowstartdate
121102004-04-19 00:00:00.000
122102004-07-19 00:00:00.000
123102004-10-19 00:00:00.000
124102005-01-19 00:00:00.000
125102005-04-19 00:00:00.000
126102005-07-19 00:00:00.000
127102005-10-19 00:00:00.000
128102006-01-19 00:00:00.000
68101172004-11-16 00:00:00.000
68111172005-05-16 00:00:00.000
68121172005-11-16 00:00:00.000
68131172006-05-16 00:00:00.000
68141172006-11-16 00:00:00.000
68151172007-05-16 00:00:00.000
68161172007-11-16 00:00:00.000
68171172008-05-16 00:00:00.000
68181172008-11-16 00:00:00.000
68191172009-05-16 00:00:00.000
68201172009-11-16 00:00:00.000
68211172010-05-16 00:00:00.000
68221172010-11-16 00:00:00.000
68231172011-05-16 00:00:00.000
I'm trying to derive a 'period' value which is an integer based on the ordering of cashflowstartdatefor each tradeid group. The desired effect is as below
Period eventid tradeid cashflowstartdate
1 121102004-04-19 00:00:00.000
2 122102004-07-19 00:00:00.000
3 123102004-10-19 00:00:00.000
4 124102005-01-19 00:00:00.000
5 125102005-04-19 00:00:00.000
6 126102005-07-19 00:00:00.000
7 127102005-10-19 00:00:00.000
8 128102006-01-19 00:00:00.000
1 68101172004-11-16 00:00:00.000
2 68111172005-05-16 00:00:00.000
3 68121172005-11-16 00:00:00.000
4 68131172006-05-16 00:00:00.000
5 68141172006-11-16 00:00:00.000
6 68151172007-05-16 00:00:00.000
7 68161172007-11-16 00:00:00.000
8 68171172008-05-16 00:00:00.000
9 68181172008-11-16 00:00:00.000
10 68191172009-05-16 00:00:00.000
11 68201172009-11-16 00:00:00.000
12 68211172010-05-16 00:00:00.000
13 68221172010-11-16 00:00:00.000
14 68231172011-05-16 00:00:00.000
Hope this makes and thanks in advance
View 1 Replies
View Related
May 9, 2008
I need to create an ordered list of items using a select statement in a stored procedure. All itemsare obtained from a table but the first item in the list has a different value from the others.
View 10 Replies
View Related
Nov 1, 2007
My query is
select * from Items where ItemId in
(4354,14759 ,62990,105170,105244,14741,58495,14742,49798,14743,58496,14744,71631)
I'm getting the resultant set in the random order.. like this
4354
14741
14742
14743
14744
14759
49798
58495
58496
62990
71631
105170
105244
How to retrive as same as i have given inside IN clause
i.e --> In this order 4354,14759 ,62990,105170,105244,14741,58495,14742,49798,14743,58496,14744,71631
Any help would be very uself.
Thanks in Advance
Vidhya
View 6 Replies
View Related
Jun 27, 2005
I have table1 with orderID and demographic info.
Table2 with orderID and items.
I would like to have a results display like this:
OrderIDDemographicInfo Item1Item2Item3....ect
One line per order. When I do a join I displaying all items in different rows.
View 1 Replies
View Related
Sep 29, 2015
I want to get the list of items present in that order based on the confidentiality code of that product or Item and confidentiality code of the user.
I display the list of orders in first grid, by selecting the order in first grid I display the Items present in that order based on the confidentiality code of that item.
whenever order in 1st grid is selected i want to display the items that the item code should be less than or equal to the confidentiality code of the logged-in user other items should not display.
If the all the items present in the order having confidentiality code greater than Logged-in user at that time the order no# should not display in the first grid.
Table 1:Order
Order_Id Order_No Customer_Id
2401 1234567 23
2402 1246001 24
2403 1246002 25
Table 2 : OrderedItems
OrderItem_Id Order_Id Item_Id Sequence
1567 2401 1001 1
1568 2401 1003 2
1569 2402 1005 1
1570 2402 1007 2
1571 2403 1010 1
Table 3: ItemMaster
Item_Id Item_Name confidentCode
1001 Rice Null
1003 Wheet 7
1005 Badham Null
1007 Oil 6
1010 Pista 8
Out put for 1st gridÂ
**Note :** Logged-in user have confidentiality code 6
Order No Customer
1234567 23
1246001 24
3rd order is not displayed in the grid
After user selects the 1st order in the grid then the items present in that 1st order should be displayed asÂ
1001 Â Â Rice
the second item not displayed because that having confidentiality code greater than user.
After user selects the 2nd order in the grid then the items present in that order should displays
1005 Badham
1007 Oil
I need the query to display the order details in 1st grid.
View 3 Replies
View Related
Oct 4, 2007
Hi everyone,
sorry to b a pest again! Before I made the decision to change the DB used in my app from SQL Server Express to SSCE, I had no problems with constructing a SELECT statement as laid out in the Title.
Basically, I have 2 tables with a one-many relationship between them. In the Parent table, I had a SQL Statement as follows:
SELECT DeptID, DeptName,
(SELECT DISTINCT COUNT(Active) FROM Documents WHERE (Documents.DeptID = Dept.DeptID) AND
(Documents.Active = 'True') AS CountOfActive
FROM Dept
Now in SSCE 3.1, I get an "Unable to parse query" error message when I construct the same SQL statement in my dataset designer.
Any thoughts on how I may solve this?
Much thanx!
Shalan
View 15 Replies
View Related
Jul 30, 1998
When i make a qeury with some data of the type numeric, how do i make the output come with digit grouping symbol. Like 1.000.000,00.
Now the output looks like 1000000,00.
View 2 Replies
View Related
Mar 10, 2008
I realise this'll probably seem like a very silly question, but is there any way of changing the font and font size in a query window in MS SQL Server Management Studio Express?
It would just make life a lot easier if I could see more of the text!
View 1 Replies
View Related
Aug 27, 2007
I have 2 issues wih the appearance of my report both in the preview tab and when I deploy.
1. My report contains a subreport and the subreport appears indented from the left edge of the main report. How can I stop this? I won't the subreport to be aligned with the main report.
2. The last column of my report is stretched to the edge of the page even though I have all my cells set to CanGrow = false. How can I stop this?
Any help is appreciated.
View 1 Replies
View Related
Apr 17, 2007
Hi: I'm try to create a stored procedure where I sum the amounts in an invoice and then store that summed amount in the Invoice record. My attempts at this have been me with the error "The multi-part identifier "items.TAX" could not be bound"Any help at correcting my procedure would be greatly appreciate. Regards,Roger Swetnam ALTER PROCEDURE [dbo].[UpdateInvoiceSummary] @Invoice_ID intAS DECLARE @Amount intBEGIN SELECT Invoice_ID, SUM(Rate * Quantity) AS Amount, SUM(PST) AS TAX FROM InvoiceItems AS items GROUP BY Invoice_ID HAVING (Invoice_ID = @Invoice_ID) Update Invoices SET Amount = items.Amount WHERE Invoice_ID =@Invoice_IDEND
View 3 Replies
View Related
Feb 25, 2015
I am struggling to come up with a set-based solution for this problem (i.e. that doesn't involve loops/cursors) ..A table contains items (identified by an ItemCode) and the set they belong to (identified by a SetId). Here is some sample data:
SetIdItemCode
1A
1B
24
28
26
310
312
410
[code]....
You can see that there are some sets that have the same members:
- 1 and 10
- 2 and 11
- 7, 8 & 9
What I want to do is identify the sets that have the same members, by giving them the same ID in another column called UniqueSetId.
View 8 Replies
View Related
Apr 10, 2015
I'm having an issue creating a report that can group & sum similar items together (I know in some ways, the requirement doesn't make sense, but it's what the client wants).
I have a table of items (i.e. products). Â In some cases, items can be components of another item (called "Kits"). Â In this scenario, we consider the kit itself, the "parent item" and the components within the kit are called "child items". Â In our Items table, we have a field called "Parent_Item_Id". Â Records for Child Items contain the Item Id of the parent. Â So a sample of my database would be the following:
ItemId | Parent_Item_Id | Name | QuantityAvailable
----------------------------------------
1 | NULL | Kit A | 10
2 | 1 | Item 1 | 2
3 | 1 | Item 2 | 3
4 | NULL | Kit B | 4
5 | 4 | Item 3 | 21
6 | NULL | Item 4 | 100
Item's 2 & 3 are child items of "Kit A", Item 5 is a child item of "Kit B" and Item 6 is just a stand alone item.
So, in my report, the client wants to see the SUM of both the kit & its components in a single line, grouped by the parent item. Â So an example of the report would be the following:
Name | Available Qty
--------------------------
Kit A | 15
Kit B | 25
Item 4 | 100
How I can setup my report to group properly?
View 6 Replies
View Related
Jun 13, 2007
Hi,
Is it possible in SSRS to change the appearance of a Hyperlink based on a MouseOver event? For example can I show the text as say, underlined, only when the Mouse pointer hovers over it.. and normal otherwise?
View 1 Replies
View Related
Feb 11, 2008
Hello,
I am attempting to modify an existing matrix report into something a bit more diverse and aesthetically appealing to our users. The problem is changing the size of columns, rows, border types, etc.
So far I have not yet been able to locate any custom code samples that refer to ways of changing the overall appearance and properties of the matrix. I am not concerned with the data but in some cases a column's width will need to be larger or smaller based on the size of the data inside it.
The strings can range from 3 characters to 15 or more and the number of columns can be just as dynamic in number. If that happens I need to shrink or expand a column to match.
I am familiar with using custom code just not in using it to access the matrix properties.
Thanks.
View 5 Replies
View Related
Apr 3, 2015
I have written a query to search for a string in an expression by the number of it's appearance. Script is like this:
DECLARE @Expression VARCHAR(8000) = 'abcd_e_fgh',
@SearchString VARCHAR(10)= '_',
@OccuranceNumber SMALLINT = 1
DECLARE @SearchIndex INT = 0, @SearchIndexPrevious INT = 0, @Sno INT = 0
WHILE @Sno < @OccuranceNumber BEGIN
[Code] .....
Here i'm trying to search "_" in expression "abcd_e_fgh" where it is appearing for first time. it gives me 5 correctly. Now when i change the @OccurenceNumber to 2 or 3, it gives correct values 7 and -1 respectively. However now when i change it to 4, it gives me 5. So when it's trying to check for fifth appearance of "_", it's not actually giving 0 or -1 but repeating the value 5.
View 9 Replies
View Related
May 12, 2006
I cannot find an easy way to DELETE items which are > 1 time in my table (i am working with MS SQL 2000)
idserialisOk
-------------------
2AAA1
3BBB0
5dfds0
6CCC1
7fdfd 0
8AAA0
9CCC0
I want to DELETE each Row IN
SELECT doublons.serial, Count(doublons.serial) AS 2Times
FROM doublons
GROUP BY doublons.serial
HAVING Count(doublons.serial)>1
and WHERE isOK = 0
in my exemple , after deleting, my table must look like
idserialisOk
-------------------
8AAA1
9CCC1
3BBB0
5dfds0
7fdfd0
thank you for helping
View 10 Replies
View Related
Jun 30, 2006
Hi,
Why adidas is better-ranked than nike??
Table "indice":
idcCod fabCod mcaCod catCod fabNom mcaNom catNom
1111NikeNikeRopa
2221AdidasAdidasRopa
3113NikeNikeMedias
4118NikeNikeLargas
SELECT[RANK] ,[KEY],idc.*
FROMFREETEXTTABL (dbo.indice,mcaNombre,fabNombre,catNombre),
'ropa adidas nike',
LANGUAGE 3082, 5) res left join
dbo.indice idc with (nolock) on idc.idcCodigo=res.[key]
ORDER BY [RANK] DESC;
Result:
RANK KEY
182
03
04
01
Why idcCods's 1 and 2 have different rank??
because idcCod's 3 and 4 affects ?? or it's just thinks of language??
Thank's in advance
View 5 Replies
View Related
Oct 14, 2005
Ok. Im not able to understand this logic please help. As you can see we have 2 columns of ranks, 1)normal 2)corrective. what is the logic behind this and how do u write a query for this? these ranks are for the Salary Column.
Imran,
"You truly do not know someone untill you fight them."-THE MATRIX.
EmpID Empname EmpSalary RankNormal RankCorrective
1 A 150001 1
2 B 100002 4
3 C 150001 1
4 D 40003 5
5 E 150001 1
6 F 15004 6
7 G 15004 6
8 H 5005 8
View 20 Replies
View Related
Aug 17, 2006
I have table :
Result1 Rank
5
6
78
4
27
3
How to rank in above table ?
Thank you very much !
View 13 Replies
View Related
May 28, 2007
Hi All,
Please let me know the equivalent of RANK() over ( order by...)
in SQL server 2000.
I thought this was supported in SQL server 2000.
Please let me know if there exists a user defined function.
Thanks in Advance.
Thanks
View 1 Replies
View Related
Jun 28, 2006
I would like to write a query that gives me the values of a set ofobservations, and their rank.CREATE TABLE #Values(val int)INSERT #Values SELECT 1INSERT #Values SELECT 5INSERT #Values SELECT 10I would like to select this:1 10 -- rank 1, value 102 53 1I can put them into a temp table with an identity column, ordered bythe column I'm interested in, and then retrieve in order by theidentity column. I'm wondering if there's a way to do that with asubquery.Thanks,Jim
View 3 Replies
View Related
May 22, 2006
I've written a bunch of code using contains for fts. Then as I was trying to run the sorting, I realized that I have to use containstable in order to sort by rank. Is that correct? When I was using contains, I just used it as a where clause so I would have something like...
WHERE ((PostedUntil >= '5/22/2006') AND (SiteId=199)) AND (CONTAINS (PositionTitle, '"sales"') OR CONTAINS (Description, '"sales"'))
From the examples I've seen, in order to use containstable, I have to join a new dynamic table to the freetext enabled table and it only uses 1 containstable phrase for the new table. In my case, I may have multiple containstable phrases, so would they all fall in a () set like..
FROM Categories AS FT_TBL INNER JOIN
(CONTAINSTABLE (table, col1, searchphrase) OR (CONTAINSTABLE(table, col2, searchphrase2) OR CONTAINSTABLE (table, col3, searchphrase3)) AS KEY_TBL
... or would each containstable have to be a new join? I don't want to spend anymore time going back and rewriting code just to test it since it's about a days worth of recoding. Thanks.
View 3 Replies
View Related
May 13, 2008
ive created a photo sharing site, and im trying to show the statisics for certain users, so far i can COUNT all the photos the user has upload, and show them in descending order, but i need to be able to see the ranking of the user, like :
RANK USERID No. Of Photos
1 10 100
2 8 70
3 9 85
is there anyway of doing this? thanks Si!
View 7 Replies
View Related
Aug 1, 2006
My data:
Code:
CUST NO | StoreName| Rank
Cust1 0781 1
Cust1 0246 2
Cust1 0481 3
Cust2 2101 1
Cust2 8876 2
Cust2 5445 3
Cust3 3243 1
Cust3 4545 2
Cust3 3223 3
Im trying to find a way to rank as shown in the third column.
This is the code im using:
Code:
SELECT top 100 (CustomerNo)as CustomerNo, StoreName,
(SELECT COUNT(DISTINCT CustomerNo)
FROM dbo.Top3CustomerNoStores AS O2
WHERE O2.CustomerNo < O1.CustomerNo) + 1 AS drnk
FROM Top3CustomerNoStores as O1
... and getting this result
Code:
CUST NO | StoreName| drnk
Cust1 0781 1
Cust1 0246 1
Cust1 0481 1
Cust2 2101 2
Cust2 8876 2
Cust2 5445 2
Cust3 3243 3
Cust3 4545 3
Cust3 3223 3
... and using this code
Code:
SELECT top 100 (CustomerNo)as CustomerNo, StoreName,
(SELECT COUNT(*)
FROM dbo.Orders AS O2
WHERE O2.qty < O1.qty) + 1 AS rnk
.... which gives me ...
Code:
CUST NO | StoreName| rnk
Cust1 0781 1
Cust1 0246 1
Cust1 0481 1
Cust2 2101 4
Cust2 8876 4
Cust2 5445 4
Cust3 3243 7
Cust3 4545 7
Cust3 3223 7
I have noticed in SQL 2005, this is accomplished much easier with built in functions.
any help appreciated
View 1 Replies
View Related
Jun 7, 2006
Hi all,
until recently ive been using a rank equation to calculate rank,
essentially doing a select statement and selecting this as the rank field, where query 2 is the same as query 1:
((select count(*) from (query1) where (query1).value < (query2).value) +1)) as Rank
problem is that this is now running like a dog (takes 10 secs) and i'd like to try and do this another way- 2005 has a rank function, how can i do this in 2000?
here is the full statement :
SELECT StudentId, GCSE_Score, LTRIM(STR
((SELECT COUNT(*)
FROM dbo.[Score2004-05]
WHERE GCSE_score < s.GCSE_Score) + 1)) AS GCSE_Rank, SetId
FROM dbo.[Score2004-05] S
WHERE (SetId = '2004/2005')
greg
View 4 Replies
View Related
Jan 8, 2008
Is there a way to use the Rank function like in 2005 for sql 2000
View 6 Replies
View Related
Apr 8, 2008
I need help in understanding how the rank is calculated in FREETEXTABLE. I have a following query
select ft_tbl.saon
,ft_tbl.paon
,ft_tbl.street
,ft_tbl.postcode
,key_tbl.rank
from temp as ft_tbl
INNER JOIN freetextTABLE(temp, (saon, paon, street), '80 ridge avenue', 15) as key_tbl
ON FT_tbl.ID = key_tbl.[key]
First, the resulting rows does have one record which has an address 80 ridge avenue but it appears at 15th place. Ideally it should appear on 1st. All the ranks of the results are same.
Second, the results are also showing two rows which does not contain the specified search string at all. They not only appears above in the resulting table but also have the same rank as the result in question (80 ridge avenue). For example result shows €œLong Ridges, Flat 21, Fortis Green€? at fifth place which is no way near the search string. And actual record shows up at 15th Place
Is there any way we can influence the rank to show exact match first. Just to clarify I have removed the digits from noise file as we need to search house numbers. Digits appears in noise file as default.
View 1 Replies
View Related
Jul 30, 2007
Hi ,
I have a report created and within the report is columns that perform additions on the fields from the database.
I want to create a rank column to show the rank of the row compare with the rest.
Col1 Col2 Total Ranks
1 2 3 3
2 3 5 1
2 2 4 2
On the above Col 1 and 2 would come form my database, Total is calculated by the report. How can I get ranking on this total? I cannot sort by the total as the report should only showing rankings but not be ordered by the rank.
I am using SQL Server 2005 Reporting Services...anny help is much appreciated.
Thanks
View 8 Replies
View Related
Mar 15, 2008
This query:
SELECT xx.JumpHeight, xx.HeightRank, xx.NoEvents, xx.MinRunDate, xx.DogIdent,
Dogs.CallName, DogOwner.LastName, DogOwner.FirstName
FROM
(SELECT JumpHeight, DogIdent, MIN(RunDate) as "MinRunDate", COUNT(Event_ID) AS "NoEvents",
RANK() OVER (PARTITION BY JumpHeight ORDER BY COUNT(Event_ID) DESC, MIN(RunDate)) AS "HeightRank"
FROM EventData
WHERE Event=@Event
GROUP BY JumpHeight, DogIdent) AS xx, Dogs, DogOwner
WHERE (Dogs.Breed = @Breed AND xx.DogIdent = Dogs.DogIdent and Dogs.Owner_ID = DogOwner.Owner_ID) AND
(xx.HeightRank <= 10)
ORDER BY xx.JumpHeight, xx.HeightRank
produces this output:
Jump Ht.
Rank
# of Events
First Event
Owner
Call Name
08
3
1
2/19/2006
Some Owner
Otto
08
4
1
3/12/2006
Some Owner
Schotzie
I want it to produce this output:
Jump Ht.
Rank
# of Events
First Event
Owner
Call Name
08
1
1
2/19/2006
Some Owner
Otto
08
2
1
3/12/2006
Some Owner
Schotzie
I have tried several things and cannot correct the problem. Obviously, RANK is being evaluated in the wrong place, but placing it elsewhere has failed to produce the above results.
I appreciate any help I can get. Thanks!
View 4 Replies
View Related
Dec 20, 2007
Hi,All,
I have one table like this
UserID,Name,GameScore
1 A 25
2 B 23
3 C 22
4 D 25
5 E 23
6 F 26
Now i want the query which return like this
Name Score Rank
F 26 1
A 25 2
D 25 2
B 23 3
E 23 3
C 22 4
Can anyone give me the sql 2000 query for this
View 4 Replies
View Related