| Author |
Topic |
|
HGClubTec
Starting Member
12 Posts |
Posted - 2009-05-18 : 10:44:19
|
| What I'm trying to accomplish isCalculations for Amount, Tax & Gratuity for Yesterday And calculations for Amount, Tax & Gratuity for Month-To-Date. I think it might have to do with the MAX() function I'm putting on the date, but I don't know of a way around having a function there. I feel like I'm making it more complicated than it really is. Here is what I currently have.SELECT 'YGrillFood' AS Label,CASE WHEN (DATEDIFF(DD,MAX(TH.TransDate),GetDate())=1) THEN SUM(TD.Amount) END AS YAmount,CASE WHEN (CONVERT(nvarchar,MAX(TH.TransDate), 101) = CONVERT(nvarchar,GetDate()-1, 101)) THEN SUM(TD.TaxTotal) END AS YTax,CASE WHEN (CONVERT(nvarchar,MAX(TH. TransDate), 101) = CONVERT(nvarchar,GetDate()-1, 101)) THEN SUM(TD.ServiceChargeTotal) END AS YGrat,CASE WHEN (DATEDIFF(MM,MAX(TH.TransDate),GETDATE())=0) THEN SUM(TD.Amount) END AS MTDAmount,CASE WHEN (DATEDIFF(MM,MAX(TH.TransDate),GETDATE())=0) THEN SUM(TD.TaxTotal) END AS MTDTax,CASE WHEN (DATEDIFF(MM,MAX(TH.TransDate),GETDATE())=0) THEN SUM(TD.ServiceChargeTotal) END AS MTDGratFROM TransHeader TH LEFT OUTER JOIN TransDetail TD ON TH.ID = TD.TransHeaderID LEFT OUTER JOIN TransMain TM ON TH.TransMainID = TM.IDWHERE TD.RevenueCodeID IN (144, 290)AND TM.BatchStatusENUM IN (3,4) TIA for any help y'all can give! |
|
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2009-05-18 : 11:01:25
|
[code]DECLARE @TODAY datetimeSELECT @TODAY = DATEADD(DAY, DATEDIFF(DAY, 0, GETDAT()), 0)SELECT 'YGrillFood' AS Label, YAmount = SUM(CASE WHEN TH.TransDate >= DATEADD(DAY, -1, @TODAY) AND TH.TransDate < DATEADD(DAY, 1, @TODAY) THEN TD.Amount ELSE 0 END), YTax = SUM(CASE WHEN TH.TransDate >= DATEADD(DAY, -1, @TODAY) AND TH.TransDate < DATEADD(DAY, 1, @TODAY) THEN TD.TaxTotal ELSE 0 END), YGrat = SUM(CASE WHEN TH.TransDate >= DATEADD(DAY, -1, @TODAY) AND TH.TransDate < DATEADD(DAY, 1, @TODAY) THEN TD.ServiceChargeTotal ELSE 0 END), MTDAmount = SUM(CASE WHEN TH.TransDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, @TODAY), 0) AND TH.TransDate < DATEADD(MONTH, DATEDIFF(MONTH, 0, @TODAY) + 1, -1) THEN TD.Amount ELSE 0 END), MTDTax = SUM(CASE WHEN TH.TransDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, @TODAY), 0) AND TH.TransDate < DATEADD(MONTH, DATEDIFF(MONTH, 0, @TODAY) + 1, -1) THEN TD.TaxTotal ELSE 0 END), MTDGrat = SUM(CASE WHEN TH.TransDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, @TODAY), 0) AND TH.TransDate < DATEADD(MONTH, DATEDIFF(MONTH, 0, @TODAY) + 1, -1) THEN TD.ServiceChargeTotal ELSE 0 END)FROM TransHeader TH LEFT OUTER JOIN TransDetail TD ON TH.ID = TD.TransHeaderID LEFT OUTER JOIN TransMain TM ON TH.TransMainID = TM.IDWHERE TD.RevenueCodeID IN (144, 290)AND TM.BatchStatusENUM IN (3,4) [/code] KH[spoiler]Time is always against us[/spoiler] |
 |
|
|
|
|
|