我有一个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