SQLite – UPSERT *not* INSERT or REPLACE

Assuming three columns in the table: ID, NAME, ROLE BAD: This will insert or replace all columns with new values for ID=1: BAD: This will insert or replace 2 of the columns… the NAME column will be set to NULL or the default value: GOOD: Use SQLite On conflict clause UPSERT support in SQLite! UPSERT syntax was added to … Read more

Oracle Apex column link from LOV values

I’m mostly used to Apex 4.1, but this approach should work. You don’t need an LOV. Your report query should include both the MAST_ID and the TASK_NAME columns. Hide the TASK_NAME column and set MAST_ID as the linking column. If you set the Link Text (under Column Link) to #TASK_NAME#, you should get the desired result. Display As should be left at the default (Display as Text etc).

SQL – HAVING vs. WHERE

WHERE clause introduces a condition on individual rows; HAVING clause introduces a condition on aggregations, i.e. results of selection where a single result, such as count, average, min, max, or sum, has been produced from multiple rows. Your query calls for a second kind of condition (i.e. a condition on an aggregation) hence HAVING works correctly. As a rule of thumb, use WHERE before GROUP BY and HAVING after GROUP BY. … Read more

What is the difference between Scope_Identity(), Identity(), @@Identity, and Ident_Current()?

The @@identity function returns the last identity created in the same session. The scope_identity() function returns the last identity created in the same session and the same scope. The ident_current(name) returns the last identity created for a specific table or view in any session. The identity() function is not used to get an identity, it’s used to create an identity in a select…into query. The … Read more

Warning: Null value is eliminated by an aggregate or other SET operation in Aqua Data Studio

You would mostly be using COUNT to summarize over a UID. Therefore COUNT([uid]) will produce the warning: Warning: Null value is eliminated by an aggregate or other SET operation. whilst being used with a left join, where the counted object does not exist. Using COUNT(*) in this case would also render incorrect results, as you would then be counting the … Read more