Ciao a Tutte e tutti.
Qualcuno sa indicarmi la giusta sintassi per il comando IF?
Vortrei che IF reagisse in base ad un valore booleano (se "Campo" è = a 0, succede una cosa, altrimenti ne succede un'altra).
ma non so come scriverlo.
Io ho fatto così ma non funziona:
IF ("Ricette"."IngredienteLimitante" = 'True') THEN
"Ricette"."QuantitàIniziale" AS "QuantitàParziale02"
Else
"Ricette"."QuantitàIniziale" AS "QuantitàParziale03"
End If
Allego il database, lo script è in RQuantitàTotala_Q
Grazie Mille
[Risolto] IF Sintassi
[Risolto] IF Sintassi
- Allegati
-
- strulgone_a.odb
- (36.89 KiB) Scaricato 237 volte
Ultima modifica di charlie il mercoledì 26 luglio 2017, 17:09, modificato 1 volta in totale.
Motivazione: Aggiuto [Risolto] e spunta verde
Motivazione: Aggiuto [Risolto] e spunta verde
LibreOffice 5.3.0.3 su Windows 7
Re: IF Sintassi
Ciao, IF in Base non esiste. Puoi usare CASEWHEN oppure CASE WHEN.
Poi si scrive TRUE senza apici.
In ogni caso non puoi usare al posto di STRINGA1 e STRINGA2 un nome campo tipo Numerico come QuantitàInziale perché stai scrivendo su un campo tipo Boolean.
Poi si scrive TRUE senza apici.
Codice: Seleziona tutto
CASEWHEN ("IngredienteLimitante" = TRUE ,'STRINGA1' , 'STRINGA2')
CASE WHEN "IngredienteLimitante" = TRUE THEN 'STRINGA1' ELSE 'STRINGA2' END
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: IF Sintassi
Fammi capire.
IF non si può usare nel linguaggio sql di BASE.
Se voglio che la query mi inserisca un dato (quantità iniziale) in un campo (Stringa1) piuttosto che in un altro (stringa 2), in base al fatto che abbia o meno un "Ingrediente Limitante", non posso farlo se dò ad "ingrediente limitante" un valore booleano.
quindi sarebbe meglio attribuire ad "ingrediente limitante" un varchar tipo si/no, da scegliere poi nell'istruzione:
CASE ("IngredienteLimitante")
WHEN 'Sì' THEN ""Ricette"."QuantitàIniziale" AS "QuantitàParziale01"
WHEN 'No' THEN ""Ricette"."QuantitàIniziale" AS "QuantitàParziale02"
END
ho capito bene? Scusa ma sono un novello con sql e devo ancora imparare ad orientarmi bene.
grazie mille.
IF non si può usare nel linguaggio sql di BASE.
Se voglio che la query mi inserisca un dato (quantità iniziale) in un campo (Stringa1) piuttosto che in un altro (stringa 2), in base al fatto che abbia o meno un "Ingrediente Limitante", non posso farlo se dò ad "ingrediente limitante" un valore booleano.
quindi sarebbe meglio attribuire ad "ingrediente limitante" un varchar tipo si/no, da scegliere poi nell'istruzione:
CASE ("IngredienteLimitante")
WHEN 'Sì' THEN ""Ricette"."QuantitàIniziale" AS "QuantitàParziale01"
WHEN 'No' THEN ""Ricette"."QuantitàIniziale" AS "QuantitàParziale02"
END
ho capito bene? Scusa ma sono un novello con sql e devo ancora imparare ad orientarmi bene.
grazie mille.
LibreOffice 5.3.0.3 su Windows 7
Re: IF Sintassi
Scusami, ti ho dato un'indicazione errata.
Il problema della tua sintassi è l'uso di AS che può essere fatto solo alla fine dell'espressione CASEWHEN o CASE WHEN.
Così funzionerebbe:
ma non ti servirebbe a nulla.
Il problema della tua sintassi è l'uso di AS che può essere fatto solo alla fine dell'espressione CASEWHEN o CASE WHEN.
Così funzionerebbe:
Codice: Seleziona tutto
SELECT "IngredienteLimitante", CASE WHEN "IngredienteLimitante" = TRUE THEN "QuantitàIniziale" ELSE "QuantitàIniziale" END AS "QuantitàParziale1" FROM "Ricette"
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: IF Sintassi
Risolto!
Grazie Charlie!
Nella Query "Quantità Totale" ho usato questo script,
CASE ("Limitante")
WHEN 'Sì' THEN "Ricette"."QuantitàIniziale" * 100 / "Ricette"."Quantità01"
WHEN 'No' THEN "Ricette"."QuantitàIniziale" * 1
END
AS "QuantitàTotale"
Poi ho usato una casella selezione nel form, in modo che quando cliccata restituisse il valore "Sì" altrimenti "No".
Così ho simulato un valore booleano, non potendo usarlo (e non riuscendo a capire bene come usarlo).
grazie mille.
Grazie Charlie!
Nella Query "Quantità Totale" ho usato questo script,
CASE ("Limitante")
WHEN 'Sì' THEN "Ricette"."QuantitàIniziale" * 100 / "Ricette"."Quantità01"
WHEN 'No' THEN "Ricette"."QuantitàIniziale" * 1
END
AS "QuantitàTotale"
Poi ho usato una casella selezione nel form, in modo che quando cliccata restituisse il valore "Sì" altrimenti "No".
Così ho simulato un valore booleano, non potendo usarlo (e non riuscendo a capire bene come usarlo).
grazie mille.
LibreOffice 5.3.0.3 su Windows 7