uhm provo a rispiegarmi.
per fare un esempio, questa la query da dove prendo C o K:
dove CODINT può cominciare solo con C o K.codice:SELECT SUBSTR(CODINT, 0, 1) FROM MAT_ANAG WHERE DITMAT = 'XXL' AND FVL = ' ' AND NPAM = '0087';
e NPAM lo prendo da MOV.NPAM.
in sostanza:
codice:UPDATE MOV_MAG_DETT MOV SET MOV.PREZZO = FN_FSH_TROVA_PREZZO(MOV.DITTA, MOV.NPAM, 'OF', '1616', ?, '01', MOV.DATDOC), MOV.PRZDIVISA = FN_FSH_TROVA_PREZZO(MOV.DITTA, MOV.NPAM, 'OF', '1616', ?, '01', MOV.DATDOC), MOV.IMPORTO = MOV.QUANTI * FN_FSH_TROVA_PREZZO(MOV.DITTA, MOV.NPAM, 'OF', '1616', ?, '01', MOV.DATDOC), MOV.IMPDIVISA = MOV.QUANTI * FN_FSH_TROVA_PREZZO(MOV.DITTA, MOV.NPAM, 'OF', '1616', ?, '01', MOV.DATDOC), MOV.SCONTO1 = ( se SELECT SUBSTR(CODINT, 0, 1) FROM MAT_ANAG WHERE DITMAT = 'XXL' AND FVL = ' ' AND MOV.NPAM = '0087' ==> C allora sconto 20, se SELECT SUBSTR(CODINT, 0, 1) FROM MAT_ANAG WHERE DITMAT = 'XXL' AND FVL = ' ' AND MOV.NPAM = '0087' ==> K allora sconto 30, ), MOV.TSTP_MOD = SYSDATE, MOV.OPR = 'SQL' WHERE MOV.DITTA = 'XXL' AND MOV.FVL = ' ' AND MOV.NUMERAT = ? AND MOV.PERIODO = ? AND MOV.NUM = ? AND MOV.SERIE = '01'

Rispondi quotando