3

SLQ サーバー 2005 を使用しています。

倉庫に送信される「注文」を作成するアイテムのリストを登録すると、このテーブルがあり、返送する必要があるものがわかります。

これは私のコードです。

id_pedido=id_order, id_articulo=id_item, descripcion=description, fecha=date, nombre=employee name, local=store, (inicia+entra+sale) Existencias=stocks, tipo=Kind, --estado=state, activo=active.--

select id, id_pedido, p.id_articulo, p.descripcion, p.fecha, u.nombre, p.local,a.inicia+a.entra-a.sale as Existencias, a.tipo
from pedidos p join usuarios u on p.id_usuario=u.id_usuario join articulos a on a.id_articulo=p.id_articulo
where estado='activo'

私が必要とするのは、アイテムの種類が X の場合にのみ在庫列の値が表示されることです。種類が X でない場合に在庫列に null のすべての行を表示し、種類が X の場合に値を表示するにはどうすればよいですか?

これは、クライアントが従業員にそれらのアイテムの在庫のみを知らせ、他のすべての在庫を知らせたくないためです。

4

2 に答える 2

3

を使用CASEして、tipo 列を必要な値と比較できます。

select id, 
   id_pedido, 
   p.id_articulo, 
   p.descripcion, 
   p.fecha, 
   u.nombre, 
   p.local,
   case when a.tipo = 'X' then a.inicia+a.entra-a.sale end Existencias, 
   a.tipo
from pedidos p 
   join usuarios u on p.id_usuario=u.id_usuario 
   join articulos a on a.id_articulo=p.id_articulo
where estado='activo'
于 2013-05-08T02:51:21.100 に答える