我有如下所述的要求。查詢需要獲取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可享有和價值是虛假數據。我有這個查詢得到我正在尋找原始問題,但無法添加我正在尋找的條件。感謝您的幫助。
對於上述相同的數據,我需要排除其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
'「我只需要3個值按順序」,那是什麼順序? –
檢查東西的功能,這將在這裏解決你的問題 – Veljko89