我有一个两个表,第一个是产品,它是商店产品和产品集主要细节这里是产品或产品集主要区别issetofitem = 1这里是产品集主要其他明智的单个产品和另一个表产品集详细信息是产品的外键,名称为 ItemSetMasterId
在表格结构下方请帮忙
答案 0 :(得分:0)
如果我理解正确,这是union all
和inner join
select Srno, ProductCode, PartName, PartNo,
(case when issetofitem = 0 then 'product' else 'product set master' end) productinfo
from product p union all
select p.Srno, p.ProductCode, p.PartName, p.PartNo,
'product set details' as productinfo
from product p
inner join ProductSet s on s.ProductId = p.ProductId;
答案 1 :(得分:0)
根据您的数据,这似乎可以满足您的需求:
select p.srno, p.productcode, p.partname, p.partno,
(case when p.issetofitem = 1 then 'Product Set Master' else 'Product' end)
from product p
union all
select p.srno, p.productcode, p.partname, p.partno,
'Product Set Details'
from product p join
productset ps
on p.productid = ps.productid;
我觉得数据中缺少某些内容 - 这似乎假设productdetails
中的所有内容都在一个集合中。
答案 2 :(得分:0)
尝试此解决方案,它将适合您:
SELECT SrNo, ProductCode, PartName, PartNo, Detail FROM (
SELECT SrNo, ProductCode, PartName, PartNo,
(CASE WHEN p.IsSetofitem = 1 THEN 'Product Set Master' ELSE 'Product' END) AS Detail,ProductId AS ParentId FROM Product
UNION ALL
SELECT p.SrNo, p.ProductCode, p.PartName, p.PartNo,'Product Set Details' AS Detail, ps.ItemSetMasterId AS ParentId FROM Product p
join ProductSet ps on p.ProductId = ps.ProductId
WHERE p.IsSetofitem = 1 )
ORDER BY ParentId