-
-
baohaochuan 小试身手Lv3
发表于2019-8-27 09:57
悬赏10
已解决
@year,
if(DATETOSTR(MR_BS_MINSL.START_DATE,"yyyy")=@year,
DATETOSTR(MR_BS_MINSL.START_DATE,'yyyymm')^'-'^DATETOSTR(MR_BS_MINSL.END_DATE,'yyyymm'),
@year^'01-'^DATETOSTR(MR_BS_MINSL.END_DATE,'yyyymm')))
我是这样嵌套的 它会报一个 inconsistent datatypes: expected NUMBER got CHAR不一致的数据类型:预期的数字得到CHAR
21个回答
baohaochuan 发表于 2019-8-27 10:35
因为需要三个if(条件,值1,值二),if(条件,值1,值二),if(条件,值1,值二) ...
那就嵌套3个if呀。或者用case when试试
-
baohaochuan 小试身手Lv3
缱绻 发表于 2019-8-27 10:39
那就嵌套3个if呀。或者用case when试试
CASE WHEN 不能用主题表字段那肯定完成不了,,,我的两层循环还报错呢 表格GRID2的单元格E1的表达式(if(DATETOSTR(MR_BS_MINSL.START_DATE,"yyyy") > ASSTR(@year),
ASSTR(@year),
if(DATETOSTR(MR_BS_MINSL.START_DATE,'yyyy'))=ASSTR(@year),
DATETOSTR(MR_BS_MINSL.START_DATE,'yyyymm')^'-'^DATETOSTR(MR_BS_MINSL.END_DATE,'yyyymm'), ASSTR(@year)^'01-'^DATETOSTR(MR_BS_MINSL.END_DATE,'yyyymm')))有错误:给定的参数:(字符型)无法与函数IF需要的参数列表相匹配!
函数IF需要的参数列表如下:
变体型,变体型,变体型
变体型,变体型
baohaochuan 发表于 2019-8-27 10:43
CASE WHEN 不能用主题表字段那肯定完成不了,,,我的两层循环还报错呢 表格GRID2的单元格E1的表达式(i ...
多了个右括号 这个试试if(DATETOSTR(MR_BS_MINSL.START_DATE,"yyyy") > ASSTR(@year),
ASSTR(@year),
if(DATETOSTR(MR_BS_MINSL.START_DATE,'yyyy')=ASSTR(@year),
DATETOSTR(MR_BS_MINSL.START_DATE,'yyyymm')^'-'^DATETOSTR(MR_BS_MINSL.END_DATE,'yyyymm'), ASSTR(@year)^'01-'^DATETOSTR(MR_BS_MINSL.END_DATE,'yyyymm')))
-
baohaochuan 小试身手Lv3
缱绻 发表于 2019-8-27 10:47
多了个右括号 这个试试if(DATETOSTR(MR_BS_MINSL.START_DATE,"yyyy") > ASSTR(@year),
ASSTR(@year),
if ...
我这个if条件,@year参数大于START_DATE了为什么走不到嵌套的那个if呢?
-
baohaochuan 小试身手Lv3
缱绻 发表于 2019-8-27 11:11
看下结果表生成的SQL 是用的哪个过滤条件
IF里面条件可以这样写吗???xxb.start<@bbq and xxb.end>@bbq
-
baohaochuan 小试身手Lv3
孤傲的旋律 发表于 2019-8-27 12:11
应该可以 可以试试
if(DATETOSTR(MR_BS_MINSL.START_DATE,"yyyy") < ASSTR((@year-1)) and DATETOSTR(MR_BS_MINSL.END_DATE,"yyyy") > ASSTR((@year-1)),
ASSTR((@year-1)),
if(DATETOSTR(MR_BS_MINSL.START_DATE,'yyyy')=ASSTR((@year-1)),
ASSTR((@year-1))^'01-'^DATETOSTR(MR_BS_MINSL.END_DATE,'yyyymm'),
ASSTR((@year-1))^'01-'^@year-1^DATETOSTR(MR_BS_MINSL.END_DATE,'mm')
)
)
在这个if里我想让@year的参数-1应该怎么做
baohaochuan 发表于 2019-8-27 14:23
if(DATETOSTR(MR_BS_MINSL.START_DATE,"yyyy") < ASSTR((@year-1)) and DATETOSTR(MR_BS_MINSL.END_DATE ...
od(@year,'y-1')


