关于 宏表达式的运用

11177
12

wyqmd 小试身手Lv3

发表于2019-1-23 15:31

悬赏1

已解决

楼主
各位老师好

我需要根据报表查询条件中的 两个日期(开始日期,结束日期) ,来计算去年同期的库存金额,请问我可以这样用宏表达式吗?
报表工具中,可以使用这样的SQL查询来当数据源吗?


/*计算 去年同期 的库存金额*/
/*报表传参 查询开始日期 结束日期*/
declare @d1 date,@d2 date
set @d1 = '<#=@p9116#>'
set @d2 = '<#=@p7775#>'

/*转换 去年同期日期*/
declare @d11 date,@d22 date
set @d11 = CAST(LEFT(@d1,4)-1 AS CHAR(4)) + '-' + SUBSTRING(CONVERT(varchar(100), @d1, 23),6,2) + '-' + CAST(RIGHT(@d1,2) AS CHAR(2))
set @d22 = CAST(LEFT(@d2,4)-1 AS CHAR(4)) + '-' + SUBSTRING(CONVERT(varchar(100), @d2, 23),6,2) + '-' + CAST(RIGHT(@d2,2) AS CHAR(2))


select t00.ItmsGrpNam,t00.MaterialBrand,
t11.去年同期_初期金额,
t22.本去年同期_期入库金额,
t22.去年同期_本期出库金额,
(t11.去年同期_初期金额+t22.去年同期_本期入库金额-t22.去年同期_本期出库金额) as '去年同期_期末金额'
FROM
(
select t0.ItmsGrpNam,t0.MaterialBrand,Count(*) as '行'
FROM DEFAULT_CKJXC1017 t0
Group By t0.ItmsGrpNam,t0.MaterialBrand Having Count(*) > 1
) t00
left join
(
select t1.ItmsGrpNam, t1.MaterialBrand,(sum(t1.BQR_Amount) - sum(t1.BQC_Amount)) as '去年同期_初期金额' FROM DEFAULT_CKJXC1017 t1
where t1.DocDate < @d11
Group By t1.ItmsGrpNam, t1.MaterialBrand
) t11 on t11.ItmsGrpNam = t00.ItmsGrpNam AND t11.MaterialBrand = t00.MaterialBrand
left join
(
select t2.ItmsGrpNam, t2.MaterialBrand,
SUM(t2.BQR_Amount) AS '去年同期_本期入库金额',
SUM(t2.BQC_Amount) AS '去年同期_本期出库金额'
FROM DEFAULT_CKJXC1017 t2
WHERE t2.DocDate >= @d11 and t2.DocDate <= @d22
Group By t2.ItmsGrpNam, t2.MaterialBrand
) t22 on t22.ItmsGrpNam = t00.ItmsGrpNam AND t22.MaterialBrand = t00.MaterialBrand


在线等...

最近看过此主题的会员

esen_5FXRMW1CX3

esen_5DZFZFU7BU

jen

2021112209

esen_551EV9Y3NG

esen_4TM8T6J7Y5

esen_4V2MVIEBFZ

esen_4SBQYN0BZ5TZ

m110120130

esen_4Y3L5ADO80

esen_54GRJV0HVA

cghb

esen_43K228T11K83

chenliwei

最佳答案
wyqmd 发表于 2019-1-23 15:51
我也想用主题表请问 主题集的属性没有与数据工厂那边绑定.
我创建主题表的时候,怎么才能引用到那边的 ...

首先新建数据库连接池,连接到数据工厂的库

然后新建主题集,主题集选择第一步中建的连接池,就可以分析数据工厂中的数据了


12个回答

只看楼主

缱绻 数据领袖Lv6

发表于2019-1-23 15:33

只看该作者

取消 关注该作者的回复

沙发

您使用sql数据源做表么,如果报表需求不复杂的话,建议用主题表做表,比较简单、易操作另外您用的是什么数据库啊?

wyqmd 小试身手Lv3

发表于2019-1-23 15:34

只看该作者

取消 关注该作者的回复

板凳

缱绻 发表于 2019-1-23 15:33
您使用sql数据源做表么,如果报表需求不复杂的话,建议用主题表做表,比较简单、易操作另外您用的是什么数 ...

SQL2014

缱绻 数据领袖Lv6

发表于2019-1-23 15:36

只看该作者

取消 关注该作者的回复

地板


SQL??sqlserver吗还是mysql啊??

wyqmd 小试身手Lv3

发表于2019-1-23 15:36

只看该作者

取消 关注该作者的回复

5#

缱绻 发表于 2019-1-23 15:33
您使用sql数据源做表么,如果报表需求不复杂的话,建议用主题表做表,比较简单、易操作另外您用的是什么数 ...

sql2014

wyqmd 小试身手Lv3

发表于2019-1-23 15:36

只看该作者

取消 关注该作者的回复

6#

缱绻 发表于 2019-1-23 15:36
SQL??sqlserver吗还是mysql啊??

sqlserver

wyqmd 小试身手Lv3

发表于2019-1-23 15:51

只看该作者

取消 关注该作者的回复

7#

缱绻 发表于 2019-1-23 15:33
您使用sql数据源做表么,如果报表需求不复杂的话,建议用主题表做表,比较简单、易操作另外您用的是什么数 ...

我也想用主题表请问 主题集的属性没有与数据工厂那边绑定.
我创建主题表的时候,怎么才能引用到那边的表呢.(不能改主题集的属性,已经有很多的报表了)

缱绻 数据领袖Lv6

发表于2019-1-23 15:31

只看该作者

取消 关注该作者的回复

8#

wyqmd 发表于 2019-1-23 15:51
我也想用主题表请问 主题集的属性没有与数据工厂那边绑定.
我创建主题表的时候,怎么才能引用到那边的 ...

首先新建数据库连接池,连接到数据工厂的库

然后新建主题集,主题集选择第一步中建的连接池,就可以分析数据工厂中的数据了


wyqmd 小试身手Lv3

发表于2019-1-23 16:12

只看该作者

取消 关注该作者的回复

9#

缱绻 发表于 2019-1-23 15:59
首先新建数据库连接池,连接到数据工厂的库

然后新建主题集,主题集选择第一步中建的连接池,就可以分析 ...

谢谢,好了我可以创建主题表了.....我还是想知道——我SQL那里,那样用宏表达式,正确吗?

缱绻 数据领袖Lv6

发表于2019-1-23 16:25

只看该作者

取消 关注该作者的回复

10#

wyqmd 发表于 2019-1-23 16:12
谢谢,好了我可以创建主题表了.....我还是想知道——我SQL那里,那样用宏表达式,正确吗? ...

我看您没有写宏表达式呀,宏是类似这样的格式<#=@bbq#>
可参考这两个帖子中的写法
http://bbs.esensoft.com/thread-128857-1-1.html
http://bbs.esensoft.com/thread-129289-1-1.html

wyqmd 小试身手Lv3

发表于2019-1-23 17:36

只看该作者

取消 关注该作者的回复

11#

缱绻 发表于 2019-1-23 16:25
我看您没有写宏表达式呀,宏是类似这样的格式
可参考这两个帖子中的写法
http://bbs.esensoft.com/threa ...

在最前面 SQL定义定义变量 那块

上一页12下一页共2页

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号