0

私は在庫を管理するために私のプログラムからこの2つのテーブルを持っています:

Articulos(アイテム):

id_articulo(id_item)、nombre(名前)、tipo(種類)

サリダス(出荷):

id_articulo(id_item)、cant_sale(出荷金額)、imp_total(総コスト)、almacen_destino(出荷在庫運命)、date

商品の静的リストを作成するように依頼されたので、商品の種類(tipo)=somethingの場合は常に同じ商品が同じ順序で表示されます

日付の間に特定の出荷在庫desiny(almacen_destino)を検索したい場合、同じ種類(tipo)のすべてのアイテムが出荷されていないため、取得できません。

これは私がこれまでに持っているクエリです:

select a.id_articulo, sum(s.cant_sale) as Cant_sale, sum(s.imp_total) as Imp_total
from articulos a left join salidas s
on a.id_articulo=s.id_articulo
WHERE a.tipo='EMPAQUES'
and FECHA BETWEEN '06/06/2012' AND '12/06/2012'
and s.almacen_destino like 'CERRO COLORADO'
group by a.id_articulo

ティポ(種類)=これらの日付の間のEmpaquesである、その在庫運命に出荷されたアイテムのみが表示されます。同じ情報に加えて、同じ種類(tipo)の他のすべてのアイテムは、出荷量と合計が出荷されない場合でも表示されます。コストはnullです。

よろしくお願いします。

4

2 に答える 2

3

外側のテーブルにフィルター基準を設定すると、外側の結合が内側の結合に変換されます。試しましたか:

SELECT 
  a.id_articulo, 
  SUM(s.cant_sale) AS Cant_sale, 
  SUM(s.imp_total) AS Imp_total
FROM
  dbo.articulos AS a 
LEFT OUTER JOIN
  dbo.salidas AS s
  ON a.id_articulo = s.id_articulo
  AND s.almacen_destino = 'CERRO COLORADO'
  AND s.FECHA BETWEEN '20120606' AND '20120612'
WHERE a.tipo = 'EMPAQUES'
GROUP BY a.id_articulo;

私はここでいくつかのことを推測しました:

  • FECHAにあるsalidas-そうでない場合は、そのANDをWHERE句に移動します。
  • あなたの日付はd/m/yです。常に明確な日付形式を使用してください。英国またはカナダにいる可能性がありますが、聴衆の全員がそうであるとは限らず、私たちはあなたの心を読むことができません。
于 2012-06-25T17:25:21.763 に答える
1

edテーブルにWHERE関係する句チャンクを句に含める必要があります。LEFT JOINON

于 2012-06-25T17:13:39.873 に答える