教会員の手紙を送るために教会員の大きなリストを処理しています。手紙に「Dear John & Jane Smith」と挨拶してほしい。 Wordを使用してExcelシートから差し込み印刷を行います。重要なのは、男性の名前が常に最初に来なければならないということです。最初に来る列を指定する
各個人は、私が使用しているテーブルに自分の行があります。彼らは一意のIDと家族のIDを持っています。私はその家族IDを使用して、同じ列に家族をまとめています。現在、どこに行くのかを指定するために、男性名と女性名をMAX(CASE WHEN)
で区切っています。これは次のようになります。
+-----------+------------+--------------------------+
| family id | male name | female name | last name |
+-----------+------------+--------------------------+
| 1234 | john | jane | doe |
| 1235 | bob | cindy | smith |
| 1236 | NULL | susan | jones |
| 1237 | jim | NULL | taylor |
+-----------+------------+--------------------------+
しかし、家族にメンバーが1人しかいない場合は、問題が発生します。ここで
は、私が持っているクエリの一部です:
SELECT
fm.family_id AS 'Family ID',
MAX(CASE WHEN PB.gender like 'm' and FM.role_luid=29 THEN PB.nick_name END)
AS 'Male Name',
MAX(CASE WHEN PB.gender like 'f' and FM.role_luid=29 THEN PB.nick_name END)
AS 'Female Name',
PB.last_name AS 'Last Name',
FROM core_family F
私はSTUFF
またはそのような何かを使用して行を結合する必要があると考えていたが、私はそう最初に来るどの列指定のいくつかの方法が必要と思い男性の名前が常に最初に来ること。基本的には、上記のように、私は、1人の家族のための2人の家族と "親愛なるジョンスミス"の家族のために "Dear John & Jane Smith"と読むための手紙が必要です。
+-----------+--------------+-----------+
| family id | First name | last name |
+-----------+--------------+-----------+
| 1234 | john & jane | doe |
| 1235 | bob & cindy | smith |
| 1236 | susan | jones |
| 1237 | jim | taylor |
+-----------+--------------+-----------+
パーフェクト!これはまさに私が必要としたことでした。私は一時テーブルなどが必要だと思っていましたが、「+」をクリックしてから各列を再度使用することは考えていませんでした。ここでは、テンポラリテーブルのクエリが次のようになっていました。 ' '、' [郵便番号] FROM #MLmL DROP TABLE#ML' [XXXX] –