Como puedo hacerlo (GRID)

Buenos d?as tengo una tabla donde muestro los articulos seg?n sea la categoria.
SELECT
articulo, descripcion, precio, codfamilia

FROM
articulo

Si el cliente sea ha logado lo llevo a otra tabla:

SELECT
codcli, codfamilia, articulo,descuento, precio
FROM
tarifas
WHERE
(codcli = ‘[v_codcli]’) AND (codart = ‘{codart}’)

Luego le pongo las condiciones

Si el campo codfamilia es campo NULL y el articulo es igual al codart me hace un descuento sobre el precio.

if ({dataset[0][1]} = “NULL” and {dataset[0][2]} = “160000000013”){

 $importedto = {dataset[0][4]}*{dataset[0][3]}/100; // Si el campo codfam est? NULL hace el preven- tpcdes
 {precio} = {dataset[0][4]} - $importedto;

Hasta aqu? mas o menos me lo hace el problema que me surge es:

?Quiero hacer que si el codfamilia de la tabla articulo es igual al codfamilia de la tabla tarifas a todos los art?culos de la tabla articulo me haga un descuento, respetando aquellos que ha encontrado el articulo en la tabla tarifas?
idcliente codfamilia articulo descuento precio
1 NULL 160000000013 25.00 55.000 (este ser?a de la primera condicion)
1 16000 NULL 15.00 NULL (aqu? tendria que aplicar el 15% de descuento a toda la familia “16000” de la tabla de articulos excluyendo el articulo “160000000013”

Muchas gracias, espero haberme explicado.

Yo creo que te est?s liando queriendo hacerlo todo en una consulta. Lo normal es que hagas la consulta y recuperes descuento del art?cujlo para ese cliente, por otro lado, consultas en las familias si ese producto tiene alg?n descuento, etc…

Todos esos valores los vas guardando en variables locales y finalmente con todos los datos haces tu f?rmula.

Muchas gracias. Lo intentar?

He seguido tu sugerencia y casi lo tengo, lo he realizado de la siguiente forma

$sql_art = “SELECT codcli, codfam, codart, tpcdes, preven FROM tarifas
WHERE
(codcli = ‘[v_codcli]’) AND codfam IS NULL AND (codart = ‘{codart}’ )”; // Primer caso consulto si el articulo lo tengo en la tabla tarifas
sc_lookup(rs_art, $sql_art);

$sql_codfam = “SELECT codcli, codfam, codart, tpcdes, preven FROM tarifas
WHERE
(codcli = ‘[v_codcli]’) AND (codfam = ‘[v_categoria]’) AND codart IS NULL”; // Consulto si la categoria la tengo en la tabla tarifas
sc_lookup(rs_fam, $sql_codfam);

	if (false == {rs_art} ){	    // Error accediendo a la BD
		
				}			
		
	elseif ({rs_art[0][2]} = {codart} ){ // consulto datos y si hay coincidencia cambio el valor
		
		{prevena} = "e16003"  ;			
				}

}

El problema me surge cuando quiero poner la otra condicion no soy capaz de que la lea y cambie si es necesario

elseif ({rs_fam[0][1]} = [v_categoria] ){ // consulto datos y si la categoria es la misma cambio el valor

		{prevena} = "cambiovalor"  ;			
				}

No soy capaz el resultado no lo hace correctamente, y no encuentro la soluci?n.
Alguien puede echarme una mano.
Gracias