公司会计年度:7 月 1 日 - 6 月 30 日
我有一个查询,我正在尝试按产品和成本中心捕获本财年迄今为止的总单位数和收入美元。它将在每月 1 日运行,并查看上个月的最后一天。会计年度不会出现在报告中 - 这是标准。
Mix of pseudocode and SQL:
Where
If datepart(mm,getdate()) - 1 < 7
THEN
transaction_post_date BETWEEN 7/1/ previous year AND dateadd(day,-(day(getdate()),getdate())
Else
transaction_post_date BETWEEN 7/1/current year AND dateadd(day,-(day(getdate()),getdate())
我在写轨道上吗?如何为取决于 SQL 的年份的特定日期编写 SQL - 7/1/当年?
我使用变量很弱,甚至不知道我是否有权在 SQL Server DB 上创建它们,这相当锁定。绝对不能创建函数。(我是一名业务分析师。)
更新,财政年度向前发展,所以 2010 年 7 月 1 日是 2011 财政年度。
我认为这有效:
Year(dateadd(month,6,htx.tx_post_date)) = Year(DateAdd(Month, 5, GetDate()))
回馈?
现在我被要求将数量和收入的财政年初至今字段添加到以下查询中,这给了我总计
Select
inv.ITEM_CODE
, inventory.ITEM_NAME
, cc.COST_CENTER_CODE
, tx.REV_CODE_ID
, tx.PRICE
, tx.ITEM_SALE_ID
, sum(tx.quantity)
, sum(tx.amount)
from
transactions tx
inner join inventory inv on inv.item_id = tx.item_id
left outer join cost_center cc on cc.cost_center_id = tx.cost_center_id
where
DATEPART(mm, tx.tx_date) = DATEPART(mm,dateadd(m,-1,getdate()))
and DATEPART(yyyy, tx.tx_date) = DATEPART(yyyy,dateadd(m,-1,getdate()))
group by
inv.ITEM_CODE
, inventory.ITEM_NAME
, cc.COST_CENTER_CODE
, tx.REV_CODE_ID
, tx.PRICE
, tx.ITEM_SALE_ID
我需要在此报告中添加财政年度迄今为止的数量和金额列。顺便说一下相关子查询吗?连接会很棘手吗?我从未将子查询与聚合/分组查询一起使用。
感谢您之前的所有帮助。