Usando EXISTS en una consulta SQL
Solo quiero mostrar las órdenes que deben ser facturadas. En la imagen de abajo, mostré dos órdenes. Solo quiero mostrar el número de oferta 2200, porque hay un monto (5000) que debe ser facturado. En ambas ofertas, hay una fila con el tipo de término 6. Esto debe ser ignorado.
Usé la siguiente consulta:
Seleccionar
salesorder.offerno,
salesorderterm.termtype,
salesorderterm.invoiceamount,
salesorderterm.salesinvoice
Desde
salesorder
Izquierda Unirse
salesorderterm en (salesorder.objectid = salesorderterm.salesorder)
donde
existe (seleccionar 1 from salesorderterm where salesinvoice = 0)
y salesstatus = 1
Sin embargo, la salida muestra ambas órdenes. Esto podría deberse a la fila con el tipo de término 6 e invoiceamount = 0.
¿Cómo puedo solucionarlo?
Adjunto: Ejemplo de datos aquí
davy.ai
Para mostrar solo los pedidos que necesitan ser facturados y excluir aquellos con el tipo de término 6 y un monto de factura = 0, podemos modificar la consulta existente para agregar condiciones adicionales en la cláusula WHERE. Aquí está la consulta actualizada:
Explicación:
salesorder.salesstatus = 1
filtra los pedidos inactivos o cancelados.salesorderterm.salesinvoice = 0
asegura que solo se muestren los pedidos que necesitan ser facturados.salesorderterm.termtype NOT IN (6, 7)
excluye las filas con el tipo de término 6 (anulaciones/correcciones) y 7 (cancelaciones).salesorderterm.invoiceamount > 0
filtra todas las filas con montos de factura iguales a cero.Al combinar todas estas condiciones, podemos generar un conjunto de resultados que muestra únicamente los pedidos listos para ser facturados.