error on IIF

  • Thread starter Thread starter Ghena
  • Start date Start date
G

Ghena

SELECT pren3.Idpren, riduzioni.[3_letto_rid], riduzioni.[4_letto_rid],
riduzioni.age1, riduzioni.age2, riduzioni.id_tipo, riduzioni.tipo_pax,
riduzioni.attiva, pren3.quote_partecipazione, pren3.chd, pren3.adt,
pren3.Age1chd, pren3.Age2chd, IIf([tipo_pax]='CHD',IIf([age1]<=5 And
[age2]>=5,[quote_partecipazione]*[op]),0) AS Espr1,
IIf(InStr([3_letto_rid],'%'),Replace([3_letto_rid],'%','') & '/' &
100,0) AS op
FROM riduzioni INNER JOIN pren3 ON riduzioni.id_ogg = pren3.id_ogg
GROUP BY pren3.Idpren, riduzioni.[3_letto_rid],
riduzioni.[4_letto_rid], riduzioni.age1, riduzioni.age2,
riduzioni.id_tipo, riduzioni.tipo_pax, riduzioni.attiva,
pren3.quote_partecipazione, pren3.chd, pren3.adt, pren3.Age1chd,
pren3.Age2chd, IIf([tipo_pax]='CHD',IIf([age1]<=5 And
[age2]>=5,[quote_partecipazione]*[op]),0)
HAVING (((riduzioni.id_tipo)=29));


In the column op the results of the expression goes on error I think
that [op] value is not considering as an operator.

IIf(InStr([3_letto_rid],'%'),Replace([3_letto_rid],'%','') & '/' &
100,0) AS op

Isnt it?
 
Dear Ghena:

I take it your column [3_letto_rid] has a percentage value in a string,
which may be followed by a "%".

I recommend this:

XYZ: CCur(IIf(Right([mvs] & "%" ,1) = "%", Left(3_letto_rid,
Len(3_letto_rid)-1), 3_letto_rid)) / 100

You can paste this into a column in the design view of your query. XYZ is
whatever you wish to name this calculated column.

Is this what you needed?

Tom Ellison


Ghena said:
SELECT pren3.Idpren, riduzioni.[3_letto_rid], riduzioni.[4_letto_rid],
riduzioni.age1, riduzioni.age2, riduzioni.id_tipo, riduzioni.tipo_pax,
riduzioni.attiva, pren3.quote_partecipazione, pren3.chd, pren3.adt,
pren3.Age1chd, pren3.Age2chd, IIf([tipo_pax]='CHD',IIf([age1]<=5 And
[age2]>=5,[quote_partecipazione]*[op]),0) AS Espr1,
IIf(InStr([3_letto_rid],'%'),Replace([3_letto_rid],'%','') & '/' &
100,0) AS op
FROM riduzioni INNER JOIN pren3 ON riduzioni.id_ogg = pren3.id_ogg
GROUP BY pren3.Idpren, riduzioni.[3_letto_rid],
riduzioni.[4_letto_rid], riduzioni.age1, riduzioni.age2,
riduzioni.id_tipo, riduzioni.tipo_pax, riduzioni.attiva,
pren3.quote_partecipazione, pren3.chd, pren3.adt, pren3.Age1chd,
pren3.Age2chd, IIf([tipo_pax]='CHD',IIf([age1]<=5 And
[age2]>=5,[quote_partecipazione]*[op]),0)
HAVING (((riduzioni.id_tipo)=29));


In the column op the results of the expression goes on error I think
that [op] value is not considering as an operator.

IIf(InStr([3_letto_rid],'%'),Replace([3_letto_rid],'%','') & '/' &
100,0) AS op

Isnt it?
 
I solve in this way...

SELECT pren3.Idpren, riduzioni.[3_letto_rid], riduzioni.[4_letto_rid],
riduzioni.age1, riduzioni.age2, riduzioni.id_tipo, riduzioni.tipo_pax,
riduzioni.attiva, pren3.quote_partecipazione, pren3.chd, pren3.Age1chd,
pren3.Age2chd, IIf(([TIPO_PAX]='CHD' And [AGE1]<=5 And [AGE2]>=5) Or
([TIPO_PAX]='CHD' And [AGE1]<=7 And
[AGE2]>=7),[quote_partecipazione]+IIf(InStr([3_letto_rid],'%'),[quote_partecipazione]*CInt(Replace([3_letto_rid],'%',''))/100,[quote_partecipazione]+CInt([3_letto_rid])),0)
AS quota_3_letto, IIf(([TIPO_PAX]='CHD' And [AGE1]<=5 And [AGE2]>=5) Or
([TIPO_PAX]='CHD' And [AGE1]<=7 And
[AGE2]>=7),[quote_partecipazione]+IIf(InStr([4_letto_rid],'%'),[quote_partecipazione]*CInt(Replace([4_letto_rid],'%',''))/100,[quote_partecipazione]+CInt([4_letto_rid])),0)
AS quota_4_letto,
IIf([TIPO_PAX]='ADT',[quote_partecipazione]+IIf(InStr([3_letto_rid],'%'),[quote_partecipazione]*CInt(Replace([3_letto_rid],'%',''))/100,[quote_partecipazione]+CInt([3_letto_rid])),0)
AS quota_3_letto_ADT,
IIf([TIPO_PAX]='ADT',[quote_partecipazione]+IIf(InStr([4_letto_rid],'%'),[quote_partecipazione]*CInt(Replace([4_letto_rid],'%',''))/100,[quote_partecipazione]+CInt([4_letto_rid])),0)
AS quota_4_letto_ADT, pren3.adt
FROM riduzioni INNER JOIN pren3 ON riduzioni.id_ogg = pren3.id_ogg
WHERE (((pren3.Idpren)=136) AND ((riduzioni.id_tipo)=29));

thanks a lot again.
 
I solve in this way...

SELECT pren3.Idpren, riduzioni.[3_letto_rid], riduzioni.[4_letto_rid],
riduzioni.age1, riduzioni.age2, riduzioni.id_tipo, riduzioni.tipo_pax,
riduzioni.attiva, pren3.quote_partecipazione, pren3.chd, pren3.Age1chd,
pren3.Age2chd, IIf(([TIPO_PAX]='CHD' And [AGE1]<=5 And [AGE2]>=5) Or
([TIPO_PAX]='CHD' And [AGE1]<=7 And
[AGE2]>=7),[quote_partecipazione]+IIf(InStr([3_letto_rid],'%'),[quote_partecipazione]*CInt(Replace([3_letto_rid],'%',''))/100,[quote_partecipazione]+CInt([3_letto_rid])),0)
AS quota_3_letto, IIf(([TIPO_PAX]='CHD' And [AGE1]<=5 And [AGE2]>=5) Or
([TIPO_PAX]='CHD' And [AGE1]<=7 And
[AGE2]>=7),[quote_partecipazione]+IIf(InStr([4_letto_rid],'%'),[quote_partecipazione]*CInt(Replace([4_letto_rid],'%',''))/100,[quote_partecipazione]+CInt([4_letto_rid])),0)
AS quota_4_letto,
IIf([TIPO_PAX]='ADT',[quote_partecipazione]+IIf(InStr([3_letto_rid],'%'),[quote_partecipazione]*CInt(Replace([3_letto_rid],'%',''))/100,[quote_partecipazione]+CInt([3_letto_rid])),0)
AS quota_3_letto_ADT,
IIf([TIPO_PAX]='ADT',[quote_partecipazione]+IIf(InStr([4_letto_rid],'%'),[quote_partecipazione]*CInt(Replace([4_letto_rid],'%',''))/100,[quote_partecipazione]+CInt([4_letto_rid])),0)
AS quota_4_letto_ADT, pren3.adt
FROM riduzioni INNER JOIN pren3 ON riduzioni.id_ogg = pren3.id_ogg
WHERE (((pren3.Idpren)=136) AND ((riduzioni.id_tipo)=29));

thanks a lot again.
 
Back
Top