【发布时间】:2016-12-05 07:32:04
【问题描述】:
我有一个如下所述的要求。查询需要在 SQL Server 2008 R2 数据库上获取数据。
尽我所能获取如下所述的数据,但无法获取。非常感谢您的帮助。
Product_table
SKU UPC Details Weight Color
223 111 TShirt 25 White
224 114 Pants 25 Black
225 115 Abc 29 Yellow
230 116 XyX 23 Pink
226 117 AXYz 25 Red
226 118 Abdc 26 White
228 119 Abcr 20 Pink
229 120 Abcy 22 Green
Custom_tbl
SKU Custom_name Custom_value
223 Pickup true
223 eligible false
223 size medium
223 map red
224 pickup false
224 eligible false
224 map green
225 Pickup true
225 eligible true
225 size large
225 department 001
225 availability true
226 Pickup true
226 size large
226 map blue
226 availability true
229 eligible true
从上面提到的两个表中,查询需要获取如下所述的数据。
注意:CustomValues(示例表中的第六列)用逗号分隔,我只需要按顺序排列 3 个值(需要忽略 Custom_tbl 中的拾取、合格、映射列和其余列。如果任何 custom_name 不可用,则它应该返回空字符串(从第 3 行开始检查)如下所示)
SKU UPC DETAILS WEIGHT COLOR CustomValues
223 111 TShirt 25 White true,false,red
224 114 Pants 25 Black false,false,green
225 115 Abc 29 Yellow true,true,
226 118 Abdc 26 White true,,blue
228 119 Abcr 20 Pink ,,,
229 120 Abcy 22 Green ,true,
任何人都可以帮助我修改上述相同数据的查询,但我需要排除 Custom_name 符合条件且值为 false 的数据。我有这个查询,它得到了我正在寻找的原始问题,但无法添加我正在寻找的条件。感谢您在这方面的帮助。
对于上述相同的数据,我需要排除其 Custom_name 符合条件且值为 false 的数据。我有这个查询,但无法添加上述逻辑
SELECT productDetails.sku, Isnull(productDetails.sku, '') + ','
+ Isnull(productDetails.upc, '') + ','
+ Isnull(productDetails.details, '')
+ ',' + CustomValues
FROM (SELECT PD.*,
Stuff((SELECT ',' + Attributes.customval
FROM (SELECT
A.sku,
Isnull(Max(A.[Pickup]), '') + ','
+ Isnull(Max(A.[eligible]), '') + ','
+ Isnull(Max(A.[size]), '') AS customVal
FROM ( SELECT sku, Isnull(CASE WHEN custom_name = 'Pickup' THEN Max(custom_value) END, '') AS 'Pickup',
Isnull(CASE WHEN custom_name = 'eligible' THEN Max(custom_value) END, '') AS 'eligible',
Isnull(CASE WHEN custom_name = 'size' THEN Max(custom_value) END, '') AS 'size'
FROM [product_custom_details]
GROUP BY sku, custom_field_name ) AS A
GROUP BY A.sku ) Attributes
WHERE Attributes.sku = PD.sku
FOR xml path('')), 1, 1, '') AS CustomValues
FROM [product_details] PD) AS productDetails
ORDER BY productDetails.sku
【问题讨论】:
-
"I need only 3 values in order",这是什么顺序? -
检查东西功能,这里会解决你的问题
标签: sql sql-server join sql-server-2008-r2