【发布时间】:2014-12-12 12:19:52
【问题描述】:
我一直在这里和整个网络上查看另一个示例,但我无法理解如何执行此操作。
我有一个网站,我将产品的每一条信息都拉到一个表格中以供查看,然后加载到 csv/excel 表格中。
它结合了 7 个表格并将它们吐出如下:(切断表格的其余部分以便于阅读)
ID Filter FilterValue ParentItem ItemTitle
---------------------------------------------------------------
7 15 B LE0001 LB PALETTE WHITE 127MM
7 16 Yes LE0001 LB PALETTE WHITE 127MM
7 18 Yes LE0001 LB PALETTE WHITE 127MM
7 20 Std LE0001 LB PALETTE WHITE 127MM
7 22 Yes LE0001 LB PALETTE WHITE 127MM
7 23 Polyester LE0001 LB PALETTE WHITE 127MM
7 25 White LE0001 LB PALETTE WHITE 127MM
7 26 127mm LE0001 LB PALETTE WHITE 127MM
使用此代码(当前显示的列是 tblprod.prodID、prodval.valueColumn、prodval.valueKey、tblprod.parentSKU 和 tblprod.prodTitle)
SELECT
tblprod.prodID as ID, prodval.valueColumn as Filter,
prodval.valueKey as FilterValue, tblprod.prodSKU as Item,
tblprod.parentSKU as ParentItem, tblprod.prodTitle as ItemTitle,
tblprod.prodConsumerTitle as ConsumerTitle, tblprod.itemGroup as ItemGroup,
tblprod.itemFamily as ItemFamily, tblprod.cutLengthCode as LengthCode,
tblprod.prodPackSize as PackSize, tblprod.prodMultQty as MultipleQuantity,
tblsu.ImportCode as SalesUnit, tblprod.prodPrice as SalesPrice ,
tblprod.qtyDependent as QtyDep, tblprod.qtyTarget as Limit,
tblprod.targetPrice as Price, tblprod.prodLegacyImage as MainImage,
catprod.IsPrimary as SafetyinMind, featlists.prodList as NEWLimited
FROM
[Eclipse].[dbo].[tbl_Product] AS tblprod
LEFT JOIN
[Database].[dbo].[tbl_SalesUnit] AS tblsu ON tblsu.ID = tblprod.saleUnit
LEFT JOIN
[Database].[dbo].[tbl_ProductFilter] AS prodfil ON prodfil.ProdID = tblprod.prodID
LEFT JOIN
[Database].[dbo].[tbl_ProductFilterValues] AS prodval ON prodval.valueID = prodfil.valueID
LEFT JOIN
[Database].[dbo].[tbl_ProductstoFeaturedLists] AS prodlists ON prodlists.prodID = tblprod.prodID
LEFT JOIN
[Database].[dbo].[tbl_FeaturedLists] AS featlists ON featlists.ID = prodlists.listID
LEFT JOIN
[Database].[dbo].[tbl_CategoryProducts] AS catprod ON catprod.prodID = tblprod.prodID
重要的部分是我想组合相同 ID 的行,从过滤列 (prodval.valueColumn) 中创建列标题并用它们对应的值 (prodval.valueKey) 填充它们
我的问题是我不知道如何做到这一点,并且在阅读其他答案时我迷失了,其次有 19 个过滤器,并不是每个产品都会拥有所有这些(如您所见,上面的产品有 8 个)我不确定这样做是否会给我带来任何问题。过滤器的范围从 15 到 33,它们都被使用,但只是由不同的产品使用。
示例表如下所示。
ID ParentItem ItemTitle Filter 15 Filter 16 Filter 17 Filter 18 Filter 19 Filter 20 Filter...
7 LE0001 LB PALETTE WHITE 127MM B YES YES Std
如果有人可以提供任何帮助,我将不胜感激,但我无法理解它。
抱歉忘了提及我使用的是 SQL Server Management Studio
【问题讨论】:
-
你用的是什么关系型数据库?
-
MSSQL - 服务器管理工作室。
-
select max(Filter),min(Filter) from yourtable是什么? -
我不知道那是什么(抱歉没用)
-
Filter列的最小值和最大值是多少?
标签: sql sql-server multiple-columns multiple-tables