Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
项目和项目集详细信息的SQL查询_Sql_Sql Server - Fatal编程技术网

项目和项目集详细信息的SQL查询

项目和项目集详细信息的SQL查询,sql,sql-server,Sql,Sql Server,我有一个两个表,第一个表是product,它是store product和product set master details,这里是product或product set master之间的区别,其中issetofitem=1,这里是product set master other wise single product,另一个表是product set details,它是产品的外键,即名称ItemSetMasterId 下面的表格结构请对此提供帮助 如果我理解正确,这是union all和

我有一个两个表,第一个表是product,它是store product和product set master details,这里是product或product set master之间的区别,其中issetofitem=1,这里是product set master other wise single product,另一个表是product set details,它是产品的外键,即名称ItemSetMasterId

下面的表格结构请对此提供帮助


如果我理解正确,这是
union all
内部联接的组合

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;

根据您的数据,这似乎符合您的要求:

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
中的所有内容都在一个集合中。

试试这个解决方案它会对您有用:

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

你能恰当地描述一下吗?请给出一些样本数据。产品集详细信息应位于每个产品集主数据的下方