簡體   English   中英

總和多列,但在MySQL查詢一

[英]Sum multiple columns but one in mysql query

好的,所以我有一個產品表。 表名是“訂單”。 以下是相關的列:

orders table: ID, Style, Color, XXS, XS, SM, MD, LG, Other

我將提供一個逗號分隔的數字列表,這些列表與ID列中的值相對應(這是主鍵)。

這是挑戰。 XXS,XS,SM,MD,LG列包含數字。 其他列包含文本。 每當我們輸入訂單時,他們都會在這些欄中輸入數字,然后在最后一欄中輸入其他內容的文字說明。 這是一些示例行:

Style: 2000, Color: RED. XS: 5, MD: 5, Other: Youth 5-L
Style: 2000, Color: RED, XS: 3, L: 15
Style: 2000, Color: RED, Other: Youth 15 XS
Style: 2000, Color: RED, MD: 10, L:10
Style: 2000, Color: BLACK, MD: 15, Other: Youth - 10-L
Style: 2000, Color: BLACK, MD: 20, LG: 25

我需要的是一個按樣式,然后按顏色分組的查詢,並分別匯總了XXS,XS,SM,MD和LG列中的每一個,但從另一列中吐出了文本。 我還需要按樣式,然后按顏色排序的此列表。 最后,它必須是用逗號分隔的值列表中存在的行列表。 這是上表中的期望輸出:

Style: 2000, Color: BLACK. MD: 35, LG: 25
Style: 2000, Color: BLACK. Other: Youth - 10-L
Style: 2000, Color: RED. XS: 8, MD: 15, L: 25
Style: 2000, Color: RED. Other: Youth 5-L
Style: 2000, Color: RED. Other: Youth 15 XS

我希望這是有道理的! 我們需要將行分開,因為它們是由客戶輸入的,並且我們需要准確地保留誰訂購了什么。

如果“其他”列可以連接到一個由特殊的唯一字符序列分隔的字符串中,則獎勵點,如果它具有相同的樣式和顏色(使用|-|作為分隔符),則示例如下:

Style: 2000, Color: BLACK. MD: 35, LG: 25, Other: Youth - 10-L<br>
Style: 2000, Color: RED. XS: 8, MD: 15, L: 25, Youth 5-L|-|Youth 15-XS

編輯!!!!!

我想我很快就和我解決了。 如果有人好奇,這里是有問題的查詢。 我自己不能回答超過幾個小時的時間。

SELECT SUM(XXS) as XXS, SUM(XS) as XS, SUM(SM) as SM, SUM(MD) as MD, SUM(LG) as LG GROUP_CONCAT(Other SEPARATOR '|-|') as Other, Style, Color
FROM orders
WHERE ID IN(List...)
GROUP BY Style, Color
ORDER BY Style, Color;

該查詢根據“樣式”和“顏色”中的相似值將所有行分組在一起,對其中具有數字的列進行求和,然后將所有具有文本的列合並為我的程序可解析的格式。

只是為了讓您接受答案,這里是:

SELECT SUM(XXS) as XXS, SUM(XS) as XS, SUM(SM) as SM, SUM(MD) as MD, SUM(LG) as LG GROUP_CONCAT(Other SEPARATOR '|-|') as Other, Style, Color
FROM orders
WHERE ID IN(List...)
GROUP BY Style, Color
ORDER BY Style, Color;
SELECT
    SUM(XXS) as XXS,
    SUM(XS) as XS,
    SUM(SM) as SM,
    SUM(MD) as MD,
    SUM(LG) as LG
GROUP_CONCAT(Other SEPARATOR '|-|') as Other, Style, Color
FROM orders
WHERE ID IN(List...)
GROUP BY Style, Color
ORDER BY Style, Color;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM