如何正确设置我的查询?

时间:2012-11-22 14:42:55

标签: sql

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

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

lm_Schwellwert:
Typ, Schwellwert

Typ值是关键。在lm_Artikel中,有多个artikel具有相同的Typ。对于每个Typ,我在Schwellwert中都有一个lm_Schwellwert。现在,我想选择Bestand低于Schwellwert的文章的索引。

这是我到目前为止所做的:

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

2 个答案:

答案 0 :(得分:2)

似乎你想要这个:

SELECT A.`Index`
FROM lm_Artikel A
INNER JOIN lm_Schwellwert S
    ON A.Typ = S.Typ
WHERE A.Bestand < S.Schwellwert

答案 1 :(得分:0)

希望我理解正确......

  1. Artikel
  2. 计算同一Typ的所有lm_Artikel的数量
  3. 检查此'Bestand'的{​​{1}}总和是否小于Typ
  4. 从已确定Schwellwert
  5. Index中选择所有lm_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小于相应的'Schwellwert'。

    包裹'Bestand'用于重新确定JOIN表格中的Index