1

名前フィールドに 3 つのシナリオのそれぞれの列があるように、where 句を使用して複数の選択を作成する方法を理解するのに苦労しています。

私が今持っているクエリは次のとおりです。

    SELECT
    pd_extrafields.packetDetailsId,
    pd_extrafields.ex_value as Credit 
    FROM
    pd_extrafields
    where pd_extrafields.ex_title = "Credit,A,B,C,D,E,F"

次の条件で、他の 2 つの列を同じクエリに取り込むにはどうすればよいですか (基本的に、3 つのクエリを 1 つに結合し、列名を保持したい)。

    SELECT
    pd_extrafields.packetDetailsId,
    pd_extrafields.ex_value as AccountNum 
    FROM
    pd_extrafields
    where pd_extrafields.ex_title = "Account#"

&

    SELECT
    pd_extrafields.packetDetailsId,
    pd_extrafields.ex_value as OrderStat 
    FROM
    pd_extrafields
    where pd_extrafields.ex_title = "New/Existing"
4

1 に答える 1

1

を使用しCASEます。

 select packetDetailsId, GROUP_CONCAT(Credit) AS Credit, GROUP_CONCAT(AccountNum) AS AccountNum, GROUP_CONCAT(OrderStat) AS OrderStat FROM
( SELECT pd_extrafields.packetDetailsId,
    CASE WHEN pd_extrafields.ex_title LIKE ('%Credit%') 
    THEN pd_extrafields.ex_value ELSE NULL END as Credit,
    CASE WHEN pd_extrafields.ex_title LIKE ('%Account%') 
    THEN pd_extrafields.ex_value ELSE NULL END as AccountNum,
    CASE WHEN pd_extrafields.ex_title LIKE ('%Existing%') 
    THEN pd_extrafields.ex_value ELSE NULL END as OrderStat
    FROM pd_extrafields) AS TempTab GROUP BY packetDetailsId
于 2013-03-04T20:54:51.953 に答える