Wednesday, March 28, 2012
Latest quarterly default
data automatically for the most recent completed quarter based on a calendar
year.
For example(from the SOP30200 table in Great Plains Dynamics 7.0):
sopnumbe soptype docdate subtotal
-- -- -- --
I would like all data from July 1 through September 30, 2006 since today is
December 27 and this current calendar quarter is still in progress.
Thank you.
If you are still interested this should work (but it's a bit convoluted).
You can replace the @.Today WITH GETDATE() is you want to use the machine date.
DECLARE @.Today DATETIME
SELECT @.Today = '12/27/2006'
SELECT
@.Today AS TodaysDate,
DATEPART(year, @.Today) - CASE WHEN DATEPART(quarter, @.Today) = 1 THEN 1
ELSE 0 END AS [Year],
CASE WHEN DATEPART(quarter, @.Today) = 1 THEN 4 ELSE DATEPART(quarter,
@.Today) - 1 END AS [Quarter],
CAST(
CASE
WHEN DATEPART(quarter, @.Today) = 1 THEN '12/31/'
WHEN DATEPART(quarter, @.Today) = 2 THEN '03/31/'
WHEN DATEPART(quarter, @.Today) = 3 THEN '06/30/'
ELSE '09/30/'
END +
CAST(DATEPART(year, @.Today) - CASE WHEN DATEPART(quarter, @.Today) = 1 THEN
1 ELSE 0 END AS VARCHAR)
AS DATETIME) AS LastQuarterEnd
Results:
2006-12-27 00:00:00.000200632006-09-30 00:00:00.000
Regards,
JayAchTee
"chas2006" wrote:
> In Query Analyzer, I would like to design a view that would that would return
> data automatically for the most recent completed quarter based on a calendar
> year.
> For example(from the SOP30200 table in Great Plains Dynamics 7.0):
> sopnumbe soptype docdate subtotal
> -- -- -- --
> I would like all data from July 1 through September 30, 2006 since today is
> December 27 and this current calendar quarter is still in progress.
> Thank you.
Wednesday, March 21, 2012
Last Populated Quarter''s Data
Currently I have the following calculation to get the closing Inventory balance for a year
Code Snippet
([Measures].[Total Square Area], ClosingPeriod([Time].[Quarter].[Quarter]))But for 2007 for example this is Empty as Q4 has no data.
I know there must be a simple way to return the Last NON EMPTY Quarter's balance but I am having a fog on it....
Any help or link to an example would be great!
Will
Maybe this will work:
Code Snippet
([Measures].[Total Square Area],
Tail(NonEmpty([Time].[Quarter].[Quarter],
[Measures].[Total Square Area])).Item(0))
|||Hi Deepak,
Unfortunately that returns an error
"Token Error, Syntax is not valid"
I figured it must be close though
|||Well, here's a sample Adventure Works query, based on the above code snippet, which returns the last populated Quarter Exchange Rate for DeutscheMarks in FY2002 - a value of .49 in FY2002Q2 (after which the Euro replaced the DM):
Code Snippet
With
Member [Measures].[QuarterExchange] as
([Measures].[Average Rate],
Tail(NonEmpty(
[Date].[Fiscal Quarter of Year].[Fiscal Quarter of Year],
[Measures].[Average Rate])).Item(0)),
FORMAT_STRING = '#.00'
select
{[Measures].[QuarterExchange]} on 0
from [Adventure Works]
where ([Date].[Fiscal].[Fiscal Year].&[2002],
[Destination Currency].[Destination Currency].&[Deutsche Mark])
-
QuarterExchange
.49
Hi Will,
Yes, this is new in AS 2005 - in AS 2000, you could try NonEmptyCrossJoin(), like:
Code Snippet
([Measures].[Total Square Area],
Tail(NonEmptyCrossJoin([Time].[Quarter].Members,
{[Measures].[Total Square Area]}, 1)).Item(0).Item(0))
For future reference, you might want to mention explicitly that you're asking a question specific to AS 2000, given that SQL Server 2005 was launched nearly 2 years ago, and we're on the threshold of SQL Server 2008
MDX: NonEmpty, Exists and evil NonEmptyCrossJoin
|||Hi,
Thanks - sorry about the confusion with versions...
I was using 2005 at my old place. No I am 2005 for SSIS & SSRS but they won't budge from 2000 for AS just yet so it's a real pain & I tend to forget to mention it.
Sorry, & thanks for the help
Last Populated Quarter''s Data
Currently I have the following calculation to get the closing Inventory balance for a year
Code Snippet
([Measures].[Total Square Area], ClosingPeriod([Time].[Quarter].[Quarter]))But for 2007 for example this is Empty as Q4 has no data.
I know there must be a simple way to return the Last NON EMPTY Quarter's balance but I am having a fog on it....
Any help or link to an example would be great!
Will
Maybe this will work:
Code Snippet
([Measures].[Total Square Area],
Tail(NonEmpty([Time].[Quarter].[Quarter],
[Measures].[Total Square Area])).Item(0))
|||Hi Deepak,
Unfortunately that returns an error
"Token Error, Syntax is not valid"
I figured it must be close though
|||Well, here's a sample Adventure Works query, based on the above code snippet, which returns the last populated Quarter Exchange Rate for DeutscheMarks in FY2002 - a value of .49 in FY2002Q2 (after which the Euro replaced the DM):
Code Snippet
With
Member [Measures].[QuarterExchange] as
([Measures].[Average Rate],
Tail(NonEmpty(
[Date].[Fiscal Quarter of Year].[Fiscal Quarter of Year],
[Measures].[Average Rate])).Item(0)),
FORMAT_STRING = '#.00'
select
{[Measures].[QuarterExchange]} on 0
from [Adventure Works]
where ([Date].[Fiscal].[Fiscal Year].&[2002],
[Destination Currency].[Destination Currency].&[Deutsche Mark])
-
QuarterExchange
.49
Hi Will,
Yes, this is new in AS 2005 - in AS 2000, you could try NonEmptyCrossJoin(), like:
Code Snippet
([Measures].[Total Square Area],
Tail(NonEmptyCrossJoin([Time].[Quarter].Members,
{[Measures].[Total Square Area]}, 1)).Item(0).Item(0))
For future reference, you might want to mention explicitly that you're asking a question specific to AS 2000, given that SQL Server 2005 was launched nearly 2 years ago, and we're on the threshold of SQL Server 2008
MDX: NonEmpty, Exists and evil NonEmptyCrossJoin
|||Hi,
Thanks - sorry about the confusion with versions...
I was using 2005 at my old place. No I am 2005 for SSIS & SSRS but they won't budge from 2000 for AS just yet so it's a real pain & I tend to forget to mention it.
Sorry, & thanks for the help
Last Populated Quarter''s Data
Currently I have the following calculation to get the closing Inventory balance for a year
Code Snippet
([Measures].[Total Square Area], ClosingPeriod([Time].[Quarter].[Quarter]))But for 2007 for example this is Empty as Q4 has no data.
I know there must be a simple way to return the Last NON EMPTY Quarter's balance but I am having a fog on it....
Any help or link to an example would be great!
Will
Maybe this will work:
Code Snippet
([Measures].[Total Square Area],
Tail(NonEmpty([Time].[Quarter].[Quarter],
[Measures].[Total Square Area])).Item(0))
|||Hi Deepak,
Unfortunately that returns an error
"Token Error, Syntax is not valid"
I figured it must be close though
|||Well, here's a sample Adventure Works query, based on the above code snippet, which returns the last populated Quarter Exchange Rate for DeutscheMarks in FY2002 - a value of .49 in FY2002Q2 (after which the Euro replaced the DM):
Code Snippet
With
Member [Measures].[QuarterExchange] as
([Measures].[Average Rate],
Tail(NonEmpty(
[Date].[Fiscal Quarter of Year].[Fiscal Quarter of Year],
[Measures].[Average Rate])).Item(0)),
FORMAT_STRING = '#.00'
select
{[Measures].[QuarterExchange]} on 0
from [Adventure Works]
where ([Date].[Fiscal].[Fiscal Year].&[2002],
[Destination Currency].[Destination Currency].&[Deutsche Mark])
-
QuarterExchange
.49
Hi Will,
Yes, this is new in AS 2005 - in AS 2000, you could try NonEmptyCrossJoin(), like:
Code Snippet
([Measures].[Total Square Area],
Tail(NonEmptyCrossJoin([Time].[Quarter].Members,
{[Measures].[Total Square Area]}, 1)).Item(0).Item(0))
For future reference, you might want to mention explicitly that you're asking a question specific to AS 2000, given that SQL Server 2005 was launched nearly 2 years ago, and we're on the threshold of SQL Server 2008
MDX: NonEmpty, Exists and evil NonEmptyCrossJoin
|||Hi,
Thanks - sorry about the confusion with versions...
I was using 2005 at my old place. No I am 2005 for SSIS & SSRS but they won't budge from 2000 for AS just yet so it's a real pain & I tend to forget to mention it.
Sorry, & thanks for the help
Last Populated Quarter''s Data
Currently I have the following calculation to get the closing Inventory balance for a year
Code Snippet
([Measures].[Total Square Area], ClosingPeriod([Time].[Quarter].[Quarter]))But for 2007 for example this is Empty as Q4 has no data.
I know there must be a simple way to return the Last NON EMPTY Quarter's balance but I am having a fog on it....
Any help or link to an example would be great!
Will
Maybe this will work:
Code Snippet
([Measures].[Total Square Area],
Tail(NonEmpty([Time].[Quarter].[Quarter],
[Measures].[Total Square Area])).Item(0))
|||Hi Deepak,
Unfortunately that returns an error
"Token Error, Syntax is not valid"
I figured it must be close though
|||Well, here's a sample Adventure Works query, based on the above code snippet, which returns the last populated Quarter Exchange Rate for DeutscheMarks in FY2002 - a value of .49 in FY2002Q2 (after which the Euro replaced the DM):
Code Snippet
With
Member [Measures].[QuarterExchange] as
([Measures].[Average Rate],
Tail(NonEmpty(
[Date].[Fiscal Quarter of Year].[Fiscal Quarter of Year],
[Measures].[Average Rate])).Item(0)),
FORMAT_STRING = '#.00'
select
{[Measures].[QuarterExchange]} on 0
from [Adventure Works]
where ([Date].[Fiscal].[Fiscal Year].&[2002],
[Destination Currency].[Destination Currency].&[Deutsche Mark])
-
QuarterExchange
.49
Hi Will,
Yes, this is new in AS 2005 - in AS 2000, you could try NonEmptyCrossJoin(), like:
Code Snippet
([Measures].[Total Square Area],
Tail(NonEmptyCrossJoin([Time].[Quarter].Members,
{[Measures].[Total Square Area]}, 1)).Item(0).Item(0))
For future reference, you might want to mention explicitly that you're asking a question specific to AS 2000, given that SQL Server 2005 was launched nearly 2 years ago, and we're on the threshold of SQL Server 2008
MDX: NonEmpty, Exists and evil NonEmptyCrossJoin
|||Hi,
Thanks - sorry about the confusion with versions...
I was using 2005 at my old place. No I am 2005 for SSIS & SSRS but they won't budge from 2000 for AS just yet so it's a real pain & I tend to forget to mention it.
Sorry, & thanks for the help
Last Populated Quarter''s Data
Currently I have the following calculation to get the closing Inventory balance for a year
Code Snippet
([Measures].[Total Square Area], ClosingPeriod([Time].[Quarter].[Quarter]))But for 2007 for example this is Empty as Q4 has no data.
I know there must be a simple way to return the Last NON EMPTY Quarter's balance but I am having a fog on it....
Any help or link to an example would be great!
Will
Maybe this will work:
Code Snippet
([Measures].[Total Square Area],
Tail(NonEmpty([Time].[Quarter].[Quarter],
[Measures].[Total Square Area])).Item(0))
|||Hi Deepak,
Unfortunately that returns an error
"Token Error, Syntax is not valid"
I figured it must be close though
|||Well, here's a sample Adventure Works query, based on the above code snippet, which returns the last populated Quarter Exchange Rate for DeutscheMarks in FY2002 - a value of .49 in FY2002Q2 (after which the Euro replaced the DM):
Code Snippet
With
Member [Measures].[QuarterExchange] as
([Measures].[Average Rate],
Tail(NonEmpty(
[Date].[Fiscal Quarter of Year].[Fiscal Quarter of Year],
[Measures].[Average Rate])).Item(0)),
FORMAT_STRING = '#.00'
select
{[Measures].[QuarterExchange]} on 0
from [Adventure Works]
where ([Date].[Fiscal].[Fiscal Year].&[2002],
[Destination Currency].[Destination Currency].&[Deutsche Mark])
-
QuarterExchange
.49
Hi Will,
Yes, this is new in AS 2005 - in AS 2000, you could try NonEmptyCrossJoin(), like:
Code Snippet
([Measures].[Total Square Area],
Tail(NonEmptyCrossJoin([Time].[Quarter].Members,
{[Measures].[Total Square Area]}, 1)).Item(0).Item(0))
For future reference, you might want to mention explicitly that you're asking a question specific to AS 2000, given that SQL Server 2005 was launched nearly 2 years ago, and we're on the threshold of SQL Server 2008
MDX: NonEmpty, Exists and evil NonEmptyCrossJoin
|||Hi,
Thanks - sorry about the confusion with versions...
I was using 2005 at my old place. No I am 2005 for SSIS & SSRS but they won't budge from 2000 for AS just yet so it's a real pain & I tend to forget to mention it.
Sorry, & thanks for the help
Last Populated Quarter''s Data
Currently I have the following calculation to get the closing Inventory balance for a year
Code Snippet
([Measures].[Total Square Area], ClosingPeriod([Time].[Quarter].[Quarter]))But for 2007 for example this is Empty as Q4 has no data.
I know there must be a simple way to return the Last NON EMPTY Quarter's balance but I am having a fog on it....
Any help or link to an example would be great!
Will
Maybe this will work:
Code Snippet
([Measures].[Total Square Area],
Tail(NonEmpty([Time].[Quarter].[Quarter],
[Measures].[Total Square Area])).Item(0))
|||Hi Deepak,
Unfortunately that returns an error
"Token Error, Syntax is not valid"
I figured it must be close though
|||Well, here's a sample Adventure Works query, based on the above code snippet, which returns the last populated Quarter Exchange Rate for DeutscheMarks in FY2002 - a value of .49 in FY2002Q2 (after which the Euro replaced the DM):
Code Snippet
With
Member [Measures].[QuarterExchange] as
([Measures].[Average Rate],
Tail(NonEmpty(
[Date].[Fiscal Quarter of Year].[Fiscal Quarter of Year],
[Measures].[Average Rate])).Item(0)),
FORMAT_STRING = '#.00'
select
{[Measures].[QuarterExchange]} on 0
from [Adventure Works]
where ([Date].[Fiscal].[Fiscal Year].&[2002],
[Destination Currency].[Destination Currency].&[Deutsche Mark])
-
QuarterExchange
.49
Hi Will,
Yes, this is new in AS 2005 - in AS 2000, you could try NonEmptyCrossJoin(), like:
Code Snippet
([Measures].[Total Square Area],
Tail(NonEmptyCrossJoin([Time].[Quarter].Members,
{[Measures].[Total Square Area]}, 1)).Item(0).Item(0))
For future reference, you might want to mention explicitly that you're asking a question specific to AS 2000, given that SQL Server 2005 was launched nearly 2 years ago, and we're on the threshold of SQL Server 2008
MDX: NonEmpty, Exists and evil NonEmptyCrossJoin
|||Hi,
Thanks - sorry about the confusion with versions...
I was using 2005 at my old place. No I am 2005 for SSIS & SSRS but they won't budge from 2000 for AS just yet so it's a real pain & I tend to forget to mention it.
Sorry, & thanks for the help
Last Populated Quarter''s Data
Currently I have the following calculation to get the closing Inventory balance for a year
Code Snippet
([Measures].[Total Square Area], ClosingPeriod([Time].[Quarter].[Quarter]))But for 2007 for example this is Empty as Q4 has no data.
I know there must be a simple way to return the Last NON EMPTY Quarter's balance but I am having a fog on it....
Any help or link to an example would be great!
Will
Maybe this will work:
Code Snippet
([Measures].[Total Square Area],
Tail(NonEmpty([Time].[Quarter].[Quarter],
[Measures].[Total Square Area])).Item(0))
|||Hi Deepak,
Unfortunately that returns an error
"Token Error, Syntax is not valid"
I figured it must be close though
|||Well, here's a sample Adventure Works query, based on the above code snippet, which returns the last populated Quarter Exchange Rate for DeutscheMarks in FY2002 - a value of .49 in FY2002Q2 (after which the Euro replaced the DM):
Code Snippet
With
Member [Measures].[QuarterExchange] as
([Measures].[Average Rate],
Tail(NonEmpty(
[Date].[Fiscal Quarter of Year].[Fiscal Quarter of Year],
[Measures].[Average Rate])).Item(0)),
FORMAT_STRING = '#.00'
select
{[Measures].[QuarterExchange]} on 0
from [Adventure Works]
where ([Date].[Fiscal].[Fiscal Year].&[2002],
[Destination Currency].[Destination Currency].&[Deutsche Mark])
-
QuarterExchange
.49
Hi Will,
Yes, this is new in AS 2005 - in AS 2000, you could try NonEmptyCrossJoin(), like:
Code Snippet
([Measures].[Total Square Area],
Tail(NonEmptyCrossJoin([Time].[Quarter].Members,
{[Measures].[Total Square Area]}, 1)).Item(0).Item(0))
For future reference, you might want to mention explicitly that you're asking a question specific to AS 2000, given that SQL Server 2005 was launched nearly 2 years ago, and we're on the threshold of SQL Server 2008
MDX: NonEmpty, Exists and evil NonEmptyCrossJoin
|||Hi,
Thanks - sorry about the confusion with versions...
I was using 2005 at my old place. No I am 2005 for SSIS & SSRS but they won't budge from 2000 for AS just yet so it's a real pain & I tend to forget to mention it.
Sorry, & thanks for the help