Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi all,
after updating QlikView, I encountered a strange reload problem.
Specifically, the function involved is the following:
Table1:
LOAD
MaxString(Column1)
RESIDENT Tablex
WHERE IsNull(Column2)=-1 OR Column2 >= '100'
GROUP BY Column4, Column5
Running this script with version 10, I get this (by log):
19/07/2013 11.24.27: 0370 Geografia:
19/07/2013 11.24.27: 0371 LOAD
19/07/2013 11.24.27: 0372 MaxString(Column1) as Column1
19/07/2013 11.24.27: 0373 RESIDENT Tablex
19/07/2013 11.24.27: 0374 WHERE IsNull(Column2)=-1 OR Column2>= '100'
19/07/2013 11.24.27: 0375 GROUP BY Column4, Column5
19/07/2013 11.24.27: 1 fields found: Column1, 6.802 lines retrieved
Instead, running this script with version 11.02, I get this (by log):
19/07/2013 11.24.27: 0370 Geografia:
19/07/2013 11.24.27: 0371 LOAD
19/07/2013 11.24.27: 0372 MaxString(Column1) as Column1
19/07/2013 11.24.27: 0373 RESIDENT Tablex
19/07/2013 11.24.27: 0374 WHERE IsNull(Column2)=-1 OR Column2>= '100'
19/07/2013 11.24.27: 0375 GROUP BY Column4, Column5
19/07/2013 11.24.27: 1 fields found: Column1, 6.650 lines retrieved
The source database is obviously the same, it isn't changed.
I tried searching about function MaxString(), but for now I haven't found anything.
Can someone help me?
Thanks in advance.
"What do you think about?"
I don't think about it... 🙂
Well, if it were my problem, I'd first checked the other fields (there shouldn't be too many that may be hexadecimal), and, second, I'd reported it to the QlikTech support.
Regards,
Michael
Is the source Tablex resident table the same size as before ? Maybe something is happening prior to this command.
Should be able to see in the log file from when it is created, else by storing to QVD and comparing outside your application.
Jonathan
Good morning,
I remember having had funny issues with the IsNull() function on String-type fields, which were resolved by opting for the use of Trim(FieldName) <> '' instead.
Hope this helps, regards,
Philippe
I stopped using isnull() long ago. Using instead len(trim(FieldName))
Yes, the source Tablex is the same.
Log of QV v.10 SR4
19/07/2013 15.42.25: 0217 Tablex:
19/07/2013 15.42.25: 0218 LOAD Column1
19/07/2013 15.42.25: 0219 ,Column2
, etc......
19/07/2013 15.42.25: 0237 FROM
19/07/2013 15.42.25: 0238 MyDatabase
19/07/2013 15.42.25: 19 fields found: Column1, Column2, ........etc, 63.102 lines retrieved
Log of QV v.11.02
19/07/2013 15.47.12: 0098 Tablex:
19/07/2013 15.47.12: 0099 LOAD Column1
19/07/2013 15.47.12: 0100 ,Column2
,etc
19/07/2013 15.47.12: 0118 FROM
19/07/2013 15.47.12: 0119 MyDatabase
19/07/2013 15.47.12: 19 fields found: Column1, Column2, ........etc, 63.102 lines retrieved
So the tables sources have NOT received changes.
They are exactly the same.
Ok, I changed the expression with the one you suggested.
I got different results then the previous one, but the problem is not solved.
For me now it is important to understand why I get different results by running the same script with two different versions of QlikView.
At this point I decided to show the entire script that is interpreted differently by the two versions. I hope you can help me solve this problem.
*** Log v. 10 SR4 ***
19/07/2013 15.45.03: 0217 Tablex:
19/07/2013 15.45.03: 0218 LOAD Column1
19/07/2013 15.45.03: 0219 ,Column2
19/07/2013 15.45.03: 0220 ,Column3
19/07/2013 15.45.03: 0221 ,Column4
(.....) other columns
19/07/2013 15.45.03: 0237 FROM
19/07/2013 15.45.03: 0238 MyDatabase
19/07/2013 15.45.03: 19 fields found: Column1, Column2, Column3, Column4, (...), 63.102 lines
19/07/2013 15.45.03: 0253 Table1:
19/07/2013 15.45.03: 0254 LOAD
19/07/2013 15.45.03: 0255 MaxString(Column1) AS Column1
19/07/2013 15.45.03: 0256 RESIDENT Tablex
19/07/2013 15.45.03: 0258 Where Len(Trim(Column2)) <> '' OR Column2>= '100'
19/07/2013 15.45.03: 0259 GROUP BY Column3, Column4
19/07/2013 15.45.04: 1 fields found: Column1, 9.349 lines
*** Log v. 11.2 ***
19/07/2013 15.47.12: 0098 Tablex:
19/07/2013 15.47.12: 0099 LOAD Column1
19/07/2013 15.47.12: 0100 ,Column2
19/07/2013 15.47.12: 0101 ,Column3
19/07/2013 15.47.12: 0102 ,Column4
(...) other columns
19/07/2013 15.47.12: 0118 FROM
19/07/2013 15.47.12: 0119 MyDatabase
19/07/2013 15.47.12: 0120 (qvd)
19/07/2013 15.47.12: 19 fields found: Column1, Column2, Column3, Column4, (...), 63.102 lines
19/07/2013 15.47.13: 0134 Table1:
19/07/2013 15.47.13: 0135 LOAD
19/07/2013 15.47.13: 0136 MaxString(Column1) AS Column1
19/07/2013 15.47.13: 0137 RESIDENT Tablex
19/07/2013 15.47.13: 0138 WHERE Len(Trim((Column2)))<> '' OR Column2>= '100'
19/07/2013 15.47.13: 0139 GROUP BY Column3, Column4
19/07/2013 15.47.14: 1 fields found: Column1, 9.073 linee recuperate
I assure you that the sources and the syntax of the script is not modified in any way.
I really don't understand ...
Try to use
Where Len(Trim(Column2)) >0 OR Column2>= 100
Edit: removed quotation marks around 100
Hello again,
I would suggest you either try Trim(Column2) <> '' or Len(Trim(Column2)) > 0
Cheers,
Philippe
Done, sorry.
But the result is still different.
Ok, but I continue to have a different number of rows running the two versions