Come creare input utente per SQL dove i filtri?Quindi sto usando un ODBC per connettermi a SNOWFLAKE ed eseguire alcuni script. Mi chiedo come posso impostare una finestra dell'interfaccia utente con un elenco di filtri WHERE per semplificare l'uso di ppl.
Sto immaginando un elenco con popup per poi mappare una variabile da inserire nello script SQL. possibile?

//**SNOWFLAKE QUERY****************************************************************************************************
uid = Get Environment Variable( "USERNAME" );
sql_state="
/********************************/
SELECT distinct
column1
,column2
,etc
from Database
WHERE 1=1
and filter1 like '%qwerty%'
and filter2 in ('a', 'b', 'c')
--and filter3 = '54168'
--and filter4 <> 'that_thing'
--and filter5 not in ('group1','group2')
and Date >= CURRENT_DATE - 30 /*go back 30 days*/
";
snowflake_spc = Open Database( "DSN=SNOWFLAKE1;UID=account;PWD=password;", sql_state );
/****************************************************************************************************/
AltroScriptingRe: Come creare input utente per SQL dove i filtri?Questo è sicuramente possibile. Dipende molto dalle tue capacità di codifica con jsl e da quanto sarà complicato il sistema (se sarà solo dove filtrare con semplici clausole where, potrebbe essere abbastanza semplice da fare).
Un paio di cose a cui pensare:
- Usa la stringa del modello e poi Eval Insert per aggiungere valori lì (o semplicemente concatenare le stringhe insieme).
- Come vuoi gestire like/=? Visualizza caselle (casella radio, casella di controllo, casella combinata) o forse qualche carattere specifico nella casella di modifica del testo che indicherebbe come analizzare il testo?
- Come gestire in e più condizioni simili (filter1 come qualcosa o filter2 come qualcosa)?
- Come gestire non?
- La finestra modale ti offre un modo semplice per gestire il flusso dello script
- Pensa a come il sistema potrebbe essere ampliato in seguito
- Scripting Guide e Scripting Index saranno di grande aiuto. Anche la Guida di JMP aiuterà con diverse caselle di visualizzazione.
Di seguito è riportato un esempio molto semplice sull'utilizzo della stringa modello e quindi sull'utilizzo di eval insert per creare l'SQL finale.
Names Default To Here(1);
sqlTemplate = "\[
select *
from *
where 1=1
^filter1Str^
^filter2Str^
]\";
filter1Str = "";
filter2Str = "";
rbSel = {"like", "in", "=", "not in", "not like"};
ex = New Window("Dialog() example",
<<MODAL></MODAL>
Ho creato un sistema abbastanza simile, che crea query SQL complete a seconda degli input e delle scelte dell'utente in un'interfaccia utente (e attualmente sto facendo una riscrittura completa su questo quando ho tempo, perché l'espansione è diventata troppo difficile).
Re: Come creare input utente per SQL dove i filtri?Questo è fatto facilmente con il Generatore di query SQL .
Nei Filtri c'è un'opzione nei Filtri da richiedere all'esecuzione e JMP ti chiederà. Non c'è bisogno di costruire i propri dialoghi.

Leggi di più e passa attraverso un esempio in Costruisci una query SQL .