0

嘿伙计们,我在进行查询时遇到问题。我有这些表:

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

lm_Schwellwert:
Typ, Schwellwert

Typ价值是关键。lm_Artikel里面有多个相同的artikel Typ。对于每个Typ我都有一个Schwellwertin 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相同Typ的数量lm_Artikel
  2. 检查总和'Bestand'是否Typ小于Schwellwert
  3. Indexlm_Artikel确定的中选择所有Typ

你可以试试这个:

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”。

换行JOIN用于重新确定表Index中的 s lm_Artikel

于 2012-11-22T15:16:37.620 回答