SQL如何查询出BOM清单信息,急急急!

用SQL写出语句(BOM清单)如下图:
当FitemId=001时,将与BomId相等BomChild表信息列出,若列出的信息行中,在Bom表存在FitemId,则再其下方列出与BomId相等BomChild信息,显示的结果如下:
表1是全部显示,表2是去掉Bom中存在的信息,YFqty是原BOMChild的信息 ,Fqty是其上级的数量乘以原始用量

select bomchild.fitemid,bomchild.YFfqy,bomchild.Fqty(我不知道这个值是怎么计算的,所以只能这么写在这里) from bom,bomchild where bom.bomid=bomchild.bomid and bom.fitemid <> bomchild.fitemid
如果FitemId=001是你输入的,那么就在后面加上一个 and bom.fitemid='001' 应该就行了。
如果不加那么得到的就应该是表2,去掉and bom.fitemid <> bomchild.fitemid 应该就是表1了。追问

谢谢,不过达不到我的需求,我想实现,BomId相同的显示出来,同时表BomChild出现的FitemId若在表BOM里也存在FitemId时,再将标BOM中FitemId的BomId对应的BOmchild信息显示出来

追答

哦,明白了,
那就用union就行了
select bomchild.fitemid,bomchild.YFfqy,bomchild.Fqty(我不知道这个值是怎么计算的,所以只能这么写在这里) from bom,bomchild where bom.bomid=bomchild.bomid and bom.fitemid bomchild.fitemid
union all
select bom.fitemid,bomchild.YFfqy(这个值是从哪里来呢?你找找,这里我就这样写在这里了),bom.Ffqy from bom,bomchild where bom.fitemid=bomchild.fitemid

union上面取到的是在bomchild表中bomid存在于bom表,并且fitemid不存在与bom表中的值。
union 下面是在bom表中的fitemid存在于bomchild表中的数。

温馨提示:答案为网友推荐,仅供参考