Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 2069

Grouping by dates in a declared date range

$
0
0

Hi Guys,

 

I've been using a query to combine data from multiple tables within a date range. However, I'm battling to group the records in the date range by week in a cross tab in crystal.

 

Can anyone help me understand how to link the dates from each of the different tables to use as a way to group them by week?

 

Here's the query I'm using at the moment:

Declare @start_date date

Declare @end_date date

 

Set @start_date ='2016-02-01'

Set @end_date ='2016-02-29'

 

select j.ItmsGrpNam

        ,i.ItemCode

        ,i.ItemName

  ,ISNULL(sales.Q, 0)AS'Sales Qty'

  ,ISNULL(credit.Q, 0)AS'Credit Qty'

  ,ISNULL(sales.KG, 0)AS'Sales KG'

  ,ISNULL(credit.KG, 0)AS'Credit KG'

  ,ISNULL(sales.V, 0)AS'Sales Value'

  ,ISNULL(credit.V, 0)AS'Credit Value'

  ,ISNULL(forecast.q, 0)AS'Forecast KG'

  ,ISNULL(forecast.Q*price.p, 0)AS'Forecast Value'

from OITM i

INNERJOIN OITB j ON i.ItmsGrpCod = j.ItmsGrpCod

 

 

LEFTOUTERJOIN(SELECT T2.DocDate AS D, T0.ItemCode,SUM(t0.[LineTotal])AS V,SUM(t0.[Quantity])AS Q,SUM(t0.Quantity*T1.[NumInSale])AS KG

 

FROM INV1 T0

INNERJOIN OITM T1 ON T0.[ItemCode] = T1.[ItemCode]

INNERJOIN OINV T2 ON T0.[DocEntry] = T2.[DocEntry]

 

WHERE T2.DocDate >= @start_date AND T2.DocDate <= @end_date

 

GROUPBY t0.ItemCode, T2.DocDate ) sales ON i.ItemCode = sales.ItemCode

 

 

LEFTOUTERJOIN(SELECT T0.[ItemCode],SUM(t0.[LineTotal])AS V,SUM(T0.[Quantity])AS Q,SUM(T0.[Quantity]*T1.[NumInSale])AS KG

 

FROM RIN1 T0

INNERJOIN OITM T1 ON T0.[ItemCode] = T1.[ItemCode]

INNERJOIN ORIN T2 ON T0.[DocEntry] = T2.[DocEntry]

 

WHERE T2.DocDate >= @start_date AND T2.DocDate <= @end_date

 

GROUPBY T0.ItemCode ) credit ON i.ItemCode = credit.ItemCode

 

 

LEFTOUTERJOIN(SELECT T0.[ItemCode],SUM(T0.[Quantity])AS Q

 

FROM FCT1 T0

 

WHERE T0.Date>= @start_date AND T0.Date<= @end_date

 

GROUPBY T0.ItemCode) forecast ON i.ItemCode = forecast.ItemCode

 

 

LEFTOUTERJOIN(SELECT T0.ItemCode,MAX(t0.price)AS P

 

FROM ITM1 T0

INNERJOIN FCT1 T1 ON t0.ItemCode = t1.ItemCode

 

GROUPBY t0.[ItemCode]) price ON i.ItemCode = price.ItemCode

 

 

WHERE j.ItmsGrpNam <>'Items'AND i.ValidFor ='Y'




Viewing all articles
Browse latest Browse all 2069

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>