【问题标题】:SQL Query for Item and Item set details项目和项目集详细信息的 SQL 查询
【发布时间】:2018-05-01 09:07:50
【问题描述】:

我有两个表,第一个是产品,它是商店产品和产品集主详细信息这里是产品或产品集主的区别,其中 issetofitem =1 这里是产品集主其他明智的单品和另一个表产品集详细信息是产品的外键,名称为 ItemSetMasterId

下面的表结构请帮忙

【问题讨论】:

  • 你能正确描述一下吗?
  • 也提供一些示例数据

标签: sql sql-server


【解决方案1】:

根据您的数据,这似乎可以满足您的需求:

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】:

    如果我理解正确,这是union allinner 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;
    

    【讨论】:

    • 产品集详细信息应在每个产品集主文件下方
    【解决方案3】:

    试试这个对你有用的解决方案:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-24
      • 2020-10-15
      • 2020-09-05
      • 2011-12-18
      • 2016-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多