我有一個SQL查詢,我要查詢三個表(其中一些兩次)和我沒有得到結果,我需要:SQL查詢沒有顯示出需要的結果
我需要「文章」的搜索一個搜索字符串('網球')和查找這些文章的第二張'orderdetails'。 命中顯示訂購了多少。
現在我需要檢查這些項目是否已經交付。 因此,我查看'orderdetails'的表'訂單',並在同一個表中查找這些訂單是否有'delivery'。 '訂單'和'送貨'有一個字段,顯示它是什麼類型。
所以我必須檢查一個'交付'是否被一個'訂單'轉發。
接下來檢查這個'delivery'是否包含'article'並總結交付的文章。
如果交付物品的數量低於訂購物品的數量,我想顯示此記錄。
到目前爲止,它的工作原理除了這些項目: - [解決]感謝HLGEM「訂單」沒有「交貨」是不是在所有 顯示 - [解決]「訂單」與相同數量的「交貨」是顯示,但我不希望他們。
這是我到目前爲止有:
箴:流程訂單
珠三角:處理交貨
一個:ArticleItem
號碼:processOrderItem
d:deliveryItem
[更新代碼]
SELECT
a.Articlenumber AS Article,
PrO.Number AS Order,
PrD.Number AS Delivery,
p.Amount AS Orderamount,
SUM(d.Amount) AS Deliveryamount,
(p.Amount - Deliveryamount) AS OpenAmount
FROM Article AS a
INNER JOIN ProcessesDetails AS p
ON (a.ArticleNumber = p.Article)
AND LEFT(p.Order, 3) = 'OR-'
INNER JOIN Processes as PrO
ON PrO.Number = p.Order
AND TEXTSEARCH('Delivery:' IN PrO.Forwarded)
LEFT JOIN Processes as PrD
ON PrO.Nummer = PrD.ForwardedFrom
AND LEFT(PrD.Number,3) = 'DE-'
INNER JOIN ProcessesDetails as d
ON PrD.Number = d.Order
AND d.Article = p.Article
WHERE (a.Categorie = 'tennis')
GROUP BY(Article)
添加以下行解決了第二個問題:
HAVING Deliveryamount < Orderamount
什麼對查詢不起作用?請爲我們生成一個sql小提琴:sqlfiddle.com – Woot4Moo 2013-02-26 21:16:47
我沒有看到數字比較行。是否應該用'''d.Article <> p.Article''''或類似的東西? – GSP 2013-02-26 21:27:07
像上面最後一行GROUP? – Dinkheller 2013-02-26 22:04:44