0

やあみんな、クエリを作成するのに問題があります。私はこれらのテーブルを持っています:

lm_Artikel:
Index, Artikelbezeichnung, Status, Bestand, 
Lieferant, Datum-Einlagerung, Lagerort, Typ 

lm_Schwellwert:
Typ, Schwellwert

Typ値が鍵です。にlm_Artikel同じ記事が複数ありますTyp。それぞれについてTypSchwellwertin がありlm_Schwellwertます。ここで、Bestandが より小さい記事のインデックスを選択したいと思いますSchwellwert

これは私がこれまでに持っているものです:

SELECT `Index` 
  FROM lm_Artikel 
 WHERE Bestand < (SELECT Schwellwert FROM lm_Schwellwert)
4

2 に答える 2

2

あなたはこれが欲しいようです:

SELECT A.`Index`
FROM lm_Artikel A
INNER JOIN lm_Schwellwert S
    ON A.Typ = S.Typ
WHERE A.Bestand < S.Schwellwert
于 2012-11-22T14:45:28.993 に答える
0

私はそれを正しく理解していることを願っています...

  1. からすべてArtikel同じの数を計算するTyplm_Artikel
  2. 'Bestand'これの合計Typがより小さいかどうかを確認しますSchwellwert
  3. 決定さIndexれた からすべてを選択lm_ArtikelTyp

これを試すことができます:

SELECT `Index` 
FROM lm_Artikel m
JOIN
(
  SELECT s.`Typ` 
  FROM lm_Schwellwert s
  JOIN
  (
      SELECT `Typ`, SUM(`Bestand`) AS sumbestand
      FROM lm_Artikel
      GROUP BY `Typ`  
  ) t   
  ON s.`Typ`=t.`Typ`
  WHERE t.sumbestand<s.`Schwellwert`
)y
ON m.`Typ`=y.`Typ`

JOIN内部は、'Bestand'対応する「Schwellwert」よりも小さいタイプを決定します。

ラッピングは、テーブル内の sJOINを再決定するために使用されます。Indexlm_Artikel

于 2012-11-22T15:16:37.620 に答える