2012-11-22 130 views
0

嘿傢伙我有問題作出查詢。我有這些表格:如何正確設置我的查詢?

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

lm_Schwellwert: 
Typ, Schwellwert 

Typ值是關鍵。在lm_Artikel有多個artikel與Typ相同。對於每個Typ我有Schwellwert。現在我想選擇Bestand低於Schwellwert的文章索引。

這是我到目前爲止有:

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

回答

2

看來你想要這個:

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

非常感謝我會在有可能的時候將它標記爲正確的答案 – Alesfatalis

0

希望我的理解對不對......

  1. 計算數量全部Artikel相同Typ來自lm_Artikel
  2. 檢查,如果這個Typ'Bestand'總和小於Schwellwert
  3. lm_Artikel選擇確定Typ

你可以試試這一切Index

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用於重新確定lm_Artikel表中的Index

+0

這可能簡化爲與lamak'sanswer相同的東西 –

+0

我明白它的不同:我認爲有幾個相同類型的文章。所以每隻股票的總和必須用'lm_Schwellwert'中的限制進行評估以確定類型。一旦我們有了類型,我們可以選擇相應的文章。但我的解釋中有很多假設。 – sailingthoms