How to filter DATE data by DATE-1 day and store filtered result in another column
-
Tuesday, February 12, 2013 6:46 AM
Hi All,
I have below query...
Declare @date DATE
Set @date = '2013-01-29'Select max(GT.P_CODE) As P,
max(GT.FG_DESCRIPTION) As T_SIZE,
max(GT.PRESSCAVITY_DESC) As PRESSCAVITY_DESC,
max(GT.PLANNED_QUANTITY) As TOTAL_SCH,
Select (SUM(IT_INP_EXP_SCH.PROGRESS_QTY) Where DATEDIFF(day, @date, DATEADD(day, -1, @date)) AS PRODN_QTY_TILL_END_DATE,
max(GT.PROGRESS_QTY) As PROD_MTD,
(max(GT.PLANNED_QUANTITY) - max(GT.PROGRESS_QTY)) As T_BALANCE,
max(CASE WHEN GT.FG_DESCRIPTION = IT.FG_DESCRIPTION THEN NULL ELSE IT.FG_DESCRIPTION END) AS INCOMING_SIZE,
max(CASE WHEN GT.FG_DESCRIPTION = IT.FG_DESCRIPTION THEN NULL ELSE IT.PLANNED_QUANTITY END) AS SCH
From
GT_BAPI_INP_EXP_SCH GT WITH(NOLOCK)
Inner Join
IT_BAPI_INP_EXP_SCH IT WITH(NOLOCK)
On
GT.P_CODE = IT.P_CODE
AND
GT.MOULD_CODE = IT.MOULD_CODE
AND
GT.PRESSCAVITY_CODE = IT.PRESSCAVITY_CODE
Where
@date = IT.END_DATE
Group By
GT.MOULD_CODE,
GT.PRESSCAVITY_CODE,
GT.P_CODE
Order By
GT.P_CODEEverthning is goin well except when i add PRODN_QTY_TILL_END_DATE column, which will give me SUM(IT_INP_EXP_SCH.PROGRESS_QTY) based on @date - 1 Day = '2013-01-28' in the same select statement..
NOTE:- Select DISTINCT * from IT_BAPI_INP_EXP_SCH IT, GT_BAPI_INP_EXP_SCH GT
where IT.END_DATE = '2013-01-28' and GT.FG_DESCRIPTION = '700/40-22.5 16 PR BKT FLOT648 TL' AND GT.PRESSCAVITY_DESC = 'T CURING 91" - 13 (F13)' give me IT_INP_EXP_SCH.PROGRESS_QTYNow my concern is how to clup this select along with @date-1Day filter only for this column only to get IT_INP_EXP_SCH.PROGRESS_QTY...
Sample Data
P T_SIZE Presscavity_DESC Total_SCH PROD_MTD T_Balance Incoming_Size SCH
1000 700/40-22.5 16 PR BKT FLOT648 TL T CURING 91" - 13 (F13) 110.0 0.0 110.0 600/50-22.5 18 PR BKT FLOT648 TL 86.0
1000 4.00-24 32 PR BKT EM937 TL T CURING 75" - 1 (E8) 34.0 0.0 34.0 14.00-25 24 PR BKT EM937 TL 41.0
1000 30.5L-32 12 PR BKT TR137 TL T CURING 104" - 1 (F5) 63.0 0.0 63.0 NULL NULL
2000 11.00-20 18 PR BKT PACMSTR TT T CURING P1 55" - A10 L 158.0 89.0 69.0 NULL NULLThanks,
Bhushan
- Edited by Bhushan Juare Tuesday, February 12, 2013 6:49 AM
- Edited by Bhushan Juare Tuesday, February 12, 2013 7:11 AM
All Replies
-
Tuesday, February 12, 2013 6:53 AMPlease post sample data and required result.
-
Friday, February 22, 2013 12:57 AMModerator
>Now my concern is how to clup this select along with @date-1Day filteronly for this column only to get IT_INP_EXP_SCH.PROGRESS_QTY...
Apply WHERE .... = DATEADD(DD, -1, @date) predicate.
You may have to structure it with CTE or derived table:
http://msdn.microsoft.com/en-us/library/ms190766(v=sql.105).aspx
Kalman Toth Database & OLAP Architect
Paperback / Kindle: Pass SQL Exam 70-461 & Job Interview: Programming SQL Server 2012 -
Monday, February 25, 2013 12:25 AM
Please post DDL, so that people do not have to guess what the keys, constraints, Declarative Referential Integrity, data types, etc. in your schema are. Learn how to follow ISO-11179 data element naming conventions and formatting rules. Temporal data should use ISO-8601 formats. Code should be in Standard SQL as much as possible and not local dialect.
This is minimal polite behavior on SQL forums.
I think that you can use the newer window functions.
(SUM(progress_qty)
OVER (PARTITION BY GT.mould_code,
GT.presscavity_code, GT.p_code
ORDER BY something_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS prodn_qty_to_dateBut without DDL, we can only guess. Want to try again?
--CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking in Sets / Trees and Hierarchies in SQL

