February 8, 2017 at 8:37 am
Hi,
When I run the query using mulitple joins on Fact table and Dimension Table,
my Output would look like
Execution :1
When I run the Query at 15:24
Identifier Count Time
A 10 CurrentTimestamp (Getdate), i.e... 15:24
B 15 15:24
Execution:2
Later when I run the same query after 15 Min the output would be
When I run the query at 15:39
Identifier Count Time
A 16 15:39
B 17 15:39
Later when I run the query after 15 Min the output would be
When I run the query at 15:54
Identifier Count Time
A 21 15:54
B 30 15:54
I am trying to achieve as follows which is what is the increment count for each time stamp.
Indicator Count Time
A 10 15:24 ---- Initial Count
B 15 15:24
A 6 15:39 ---- After 15 Min Execution ( 16 - 10)
B 2 15:39 --- (17-15)
A 5 15:54 ---- After 15 Min Execution (21-16)
B 13 15:54 ---- i.e.(30-17 )
I will appreciate you time and skills.
Many Thanks in Advance.
February 8, 2017 at 8:41 am
Sangeeth878787 - Wednesday, February 8, 2017 8:37 AMHi,When I run the query using mulitple joins on Fact table and Dimension Table,
my Output would look like
Execution :1
When I run the Query at 15:24
Identifier Count Time
A 10 CurrentTimestamp (Getdate), i.e... 15:24
B 15 15:24Execution:2
Later when I run the same query after 15 Min the output would be
When I run the query at 15:39
Identifier Count Time
A 16 15:39
B 17 15:39Later when I run the query after 15 Min the output would be
When I run the query at 15:54
Identifier Count Time
A 21 15:54
B 30 15:54I am trying to achieve as follows which is what is the increment count for each time stamp.
Indicator Count Time
A 10 15:24 ---- Initial Count
B 15 15:24
A 6 15:39 ---- After 15 Min Execution ( 16 - 10)
B 2 15:39 --- (17-15)
A 5 15:54 ---- After 15 Min Execution (21-16)
B 13 15:54 ---- i.e.(30-17 )I will appreciate you time and skills.
Many Thanks in Advance.
You know the drill: please give us DDL, sample data (as INSERT statements) and desired results.
The absence of evidence is not evidence of absence
- Martin Rees
The absence of consumable DDL, sample data and desired results is, however, evidence of the absence of my response
- Phil Parkin
February 8, 2017 at 8:56 am
Well you need to specify a time frame if you only want the last 15 minutes.
i.e.
WHERE myDate >= DATEADD(mi,-15,GETDATE())
However, depending on your requirements that may not necessarily be your best solution. For example if you only wanted totals since the last time you checked I might log the most recent transaction by some unique identifier as a watermark for the next time the query runs. Please add some code and details and we'll be able to help you more.
February 8, 2017 at 9:52 am
Hi,
The sample script would be like and we do have primary keys and foreign keys on Fact Table.
select 'US' As CountryIndicator, sum(MoneyReceived) MoneyReceived, getdate() DateTime
from FctTranscations F
Inner join DimDate D on D.DateKey = F.DateKey
Inner Join DimLocaton l on l.locationkey = f.locationkey
inner join DimTime T on T.TimeKey = F.TimeKey
Inner join DimMethod M on M.MethodKey = F.MethodKey
where l.Locaton = 'US'
and M.Method = 'Direct'
Union All
select 'US' As CountryIndicator, sum(MoneyReceived) MoneyReceived, getdate() DateTime
from FctTranscations F
Inner join DimDate D on D.DateKey = F.DateKey
Inner Join DimLocaton l on l.locationkey = f.locationkey
inner join DimTime T on T.TimeKey = F.TimeKey
Inner join DimMethod M on M.MethodKey = F.MethodKey
where l.Locaton = 'UK'
and M.Method = 'InDirect'
Union All
select 'Canada' As CountryIndicator, sum(MoneyReceived) MoneyReceived, getdate() DateTime
from FctTranscations F
Inner join DimDate D on D.DateKey = F.DateKey
Inner Join DimLocaton l on l.locationkey = f.locationkey
inner join DimTime T on T.TimeKey = F.TimeKey
Inner join DimMethod M on M.MethodKey = F.MethodKey
where l.Locaton = 'Canada'
and M.Method like '%Online'
Output of above script:
CountryIndicator MoneyReceived DateTime
US 15000 15:00
UK 10000 15:00
Canada 8000 15:00
The query when I run at 15:15
CountryIndicator MoneyReceived DateTime
US 25000 15:15
UK 20000 15:15
Canada 9500 15:15
The query when I run at 15:30
CountryIndicator MoneyReceived DateTime
US 30000 15:30
UK 26000 15:30
Canada 10000 15:30
The Required output
CountryIndicator MoneyReceived DateTime
US 15000 15:00 Initial Money
UK 10000 15:00 Initial money
Canada 8000 15:00 Initial money
US 10000 15:15 First Run Time stamp , Difference between Initial Money and next run.
UK 10000 15:15
Canada 1500 15:15
US 5000 15:30
UK 6000 15:30
Canada 500 15:30
February 8, 2017 at 10:05 am
Still no DDL, so I've had to guess your field names, and untested as no DLM, but maybe:WITH CTE AS(
SELECT l.Locaton AS CountryIndicator,
MoneyReceived AS MoneyReceived,
CAST(D.DateValue AS datetime) + CAST(T.TimeValue AS datetime) AS TransactionDateTime
FROM FctTranscations F
INNER JOIN DimDate D on D.DateKey = F.DateKey
INNER JOIN DimLocaton l on l.locationkey = f.locationkey
INNER JOIN DimTime T on T.TimeKey = F.TimeKey
INNER JOIN DimMethod M on M.MethodKey = F.MethodKey
WHERE (l.Locaton = 'US' AND M.Method = 'Direct')
OR (l.Locaton = 'UK' AND M.Method = 'InDirect')
OR (l.Locaton = 'Canada' AND M.Method LIKE '%Online'))
SELECT CountryIndicator,
SUM(MoneyReceived) AS MoneyReceived,
DATEADD(MINUTE, DATEDIFF(MINUTE, '2000', TransactionDateTime) - (DATEDIFF(MINUTE, '2000', TransactionDateTime) % 5),0) AS TransactionDateTime
FROM CTE
GROUP BY CountryIndicator,
DATEADD(MINUTE, DATEDIFF(MINUTE, '2000', TransactionDateTime) - (DATEDIFF(MINUTE, '2000', TransactionDateTime) % 5),0);
Thom~
Excuse my typos and sometimes awful grammar. My fingers work faster than my brain does.
Larnu.uk
February 9, 2017 at 4:36 am
Duplicate of topic https://www.sqlservercentral.com/Forums/1857023/Every-day-count-of-Inventory?Update=1#bm1857267. Please direct further answers there.
Thom~
Excuse my typos and sometimes awful grammar. My fingers work faster than my brain does.
Larnu.uk
February 9, 2017 at 9:06 am
Y.B. - Wednesday, February 8, 2017 8:56 AMWell you need to specify a time frame if you only want the last 15 minutes.i.e.
WHERE myDate >= DATEADD(mi,-15,GETDATE())
However, depending on your requirements that may not necessarily be your best solution. For example if you only wanted totals since the last time you checked I might log the most recent transaction by some unique identifier as a watermark for the next time the query runs. Please add some code and details and we'll be able to help you more.
Hi Y.B,
Your answer provided am good hint to my problem but If I want to achieve in where condition like this Eg: WHERE max(myDate) >= DATEADD(mi,-15,max(myDate)
But to use above condition, I have got an error to use group by and Having clause But I don't want to use group by condition in my query as I am trying to achieve only count and current time stamp when the query is executed. Could you help me with this.
Eg:
Select count(Id),getdate()
from Table
where mydate between DATEADD(mi,-15,max(myDate) and max(mydate)
Many Thanks
February 9, 2017 at 9:11 am
Sangeeth878787 - Thursday, February 9, 2017 9:06 AMY.B. - Wednesday, February 8, 2017 8:56 AMWell you need to specify a time frame if you only want the last 15 minutes.i.e.
WHERE myDate >= DATEADD(mi,-15,GETDATE())
However, depending on your requirements that may not necessarily be your best solution. For example if you only wanted totals since the last time you checked I might log the most recent transaction by some unique identifier as a watermark for the next time the query runs. Please add some code and details and we'll be able to help you more.
Hi Y.B,
Your answer provided am good hint to my problem but If I want to achieve in where condition like this Eg: WHERE max(myDate) >= DATEADD(mi,-15,max(myDate)
But to use above condition, I have got an error to use group by and Having clause But I don't want to use group by condition in my query as I am trying to achieve only count and current time stamp when the query is executed. Could you help me with this.Eg:
Select count(Id),getdate()
from Table
where mydate between DATEADD(mi,-15,max(myDate) and max(mydate)Many Thanks
Here you go (link).
The absence of evidence is not evidence of absence
- Martin Rees
The absence of consumable DDL, sample data and desired results is, however, evidence of the absence of my response
- Phil Parkin
February 13, 2017 at 3:13 am
HI Thom, Phil,
Sorry I was on holiday from Friday, I just came back to today morning, I have just checked how to post the data. I am glad pointing me in correct direction to post the question.
Thank you
Viewing 10 posts - 1 through 9 (of 9 total)
You must be logged in to reply to this topic. Login to reply