いつもお世話になっています。
本日の午前中までに作成しないとならないのですが、下記の動作がわかりません。
お分かりになる方がいましたらどうか教えていただけないでしょうか!
環境:SQL2000
windowsXP
【条件】
・Aテーブルの番号列は全て”0”とする
・Aテーブルの1つの郵便番号が複数の住所をもつ→”0”のまま
・Aテーブルの1つの住所が複数の郵便番号をもつ→番号列を”1”とする。
●Aテーブル
ID | 名前 | 郵便番号 | 住所 | 番号
-----------------------------------------------------------------------------
01 | 小林 | 101-1000 | 東京都 | 0
02 | 鈴木 | 102-1000 | 東京都 | 0
03 | 鈴木 | 103-1000 | 茨城県 | 0
04 | 町田 | 105-1000 | 神奈川県 | 0
05 | 木村 | 105-1000 | 群馬県 | 0
↓出したい結果↓
ID | 名前 | 郵便番号 | 住所 | 番号
-----------------------------------------------------------------------------
01 | 小林 | 101-1000 | 東京都 | 1
02 | 鈴木 | 102-1000 | 東京都 | 1
03 | 鈴木 | 103-1000 | 茨城県 | 0
04 | 町田 | 105-1000 | 神奈川県 | 0
05 | 木村 | 105-1000 | 群馬県 | 0
以上になります。どうぞよろしくお願いします!
No.3ベストアンサー
- 回答日時:
#1,#2です。
テーブルの別名をうまく使わないと、JOINの多いクエリは複雑になるので、混乱するんだと思います。
今回はどうせ別名は必須なので、全部のテーブルを別名を使って書けばよいと思います。
SELECT
--表示するデータ
・・・
・・・
・・・
FROM Aテーブル a
LEFT OUTER JOIN Bテーブル b ON a.○○ = b.○○
LEFT OUTER JOIN Cテーブル c ON a.△△ = c.△△
INNER JOIN
(SELECT 住所,COUNT(DISTINCT 郵便番号) CNT
FROM Aテーブル
GROUP BY 住所) d ON a.住所=d.住所
WHERE a.■■='1'
ORDER BY a.◎◎
jamshid6様
お礼が遅くなり申し訳ございません!
教えていただいたとおりにやったら、見事できました!
ありがとうございました!
No.2
- 回答日時:
#1です。
>SELECT文ではなく、Aテーブルを更新するという意味で、UPDATEを使用することも可能でしょうか。
その場合は、1に更新したいもの(=Aテーブルの1つの住所が複数の郵便番号をもつ)だけを対象とすればよいので、私ならばこうします。
UPDATE Aテーブル
SET 番号=1
WHERE 住所 IN
(SELECT 住所 FROM #WK
GROUP BY 住所
HAVING COUNT(DISTINCT 郵便番号)>1)
いつもありがとうございます。
UPDATEについてはまだ未確認の為、改めてご報告したいと思います。
SELECT文の方なのですが、
教えていただいたほかに2箇所LEFT OUTER JOINもしている為、とても複雑になってしまい、どうしてもエラーがでてしまいます。
2箇所LEFT OUTER JOINの後に、今回教えていただいたSELECT文を挿入する方法を教えて頂けると大変助かります!
SELECT
--表示するデータ
・・・
・・・
・・・
FROM
(Aテーブル(重複件数を抽出をするAテーブルと同じ)
LEFT OUTER JOIN
Bテーブル(他テーブル)
ON
Aテーブル.○○ = Bテーブル.○○)
LEFT OUTER JOIN
Cテーブル(他テーブル)
ON
Aテーブル.△△ = Cテーブル.△△
WHERE
Aテーブル.■■='1'
ORDER BY
Aテーブル.◎◎
以上になります。教えていただけると大変助かります。よろしく御願いします。
No.1
- 回答日時:
これでどうですか?
SELECT
a.ID,a.名前,a.郵便番号,a.住所,
CASE WHEN b.CNT>1 THEN 1 ELSE 0 END 番号
FROM Aテーブル a
INNER JOIN
(SELECT 住所,COUNT(DISTINCT 郵便番号) CNT
FROM Aテーブル
GROUP BY 住所) b ON b.住所=a.住所
ORDER BY a.ID
この回答への補足
SELECT文ではなく、
Aテーブルを更新するという意味で、
UPDATEを使用することも可能でしょうか。
こちらも教えていただけると助かります!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】住所に郵便番号を付記する方法 3 2022/05/07 17:15
- その他(Microsoft Office) EXCELの1行を1枚の用紙にそれぞれ印刷したい。 3 2022/10/10 11:35
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
- 関東 関東地方(一都六県)を栄えている順で順位付けするなら 1位東京 2位神奈川 3位千葉 4位埼玉 5位 4 2023/08/21 10:15
- 郵便・宅配 郵便局の電話番号ってなぜ1つの局ってだけでナビダイヤルかつ自動音声なのですか? 本社へのコールセンタ 2 2023/02/05 00:06
- Oracle sqlで質問です。 Aテーブルの登録番号をキーにBテーブルから確認番号を取得したいのですが、Bテーブ 4 2023/05/18 13:08
- その他(暮らし・生活・行事) マイナンバーカードの住所表示について 9 2022/10/02 13:28
- 郵便・宅配 住所一覧にない住所があるのはなぜですか 2 2023/02/28 11:38
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
男性と2人で飲食店に行きテーブ...
-
テーブルリンク リンク元を知...
-
アクセスのリンクテーブル一覧...
-
「テーブルに座って……」という...
-
外部キーだけのテーブル(主キ...
-
L2SWはARPテーブルを持っている?
-
一致するデータのみ削除したい
-
論理名とコメント構文(?)について
-
mysql alter table 終わらない
-
重複項目の抽出方法を教えてく...
-
UTF8のテーブルをODBCドライバ...
-
ターンテーブルの、電子レンジ...
-
2つのテーブルで一致している...
-
データベースの接続に失敗して...
-
面接のときテーブルが正面に。...
-
飲み会で、座敷orテーブルどち...
-
テーブル設計について
-
検索結果からさらに検索
-
SQLserver2005 テーブル一覧の取得
-
sql 個別に情報取得方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
L2SWはARPテーブルを持っている?
-
外部キーだけのテーブル(主キ...
-
fetch_arrayでのエラー
-
テーブルリンク リンク元を知...
-
男性と2人で飲食店に行きテーブ...
-
会社の飲み会の幹事になり、座...
-
SQLです!!教えてください。
-
面接のときテーブルが正面に。...
-
飲み会で、座敷orテーブルどち...
-
「テーブルに座って……」という...
-
複雑なSQL文について
-
このテーブルで
-
MySQLで複数テーブルを作成する
-
アクセスのリンクテーブル一覧...
-
ちょっとぐらいの時間なら里山...
-
SQLでテーブルの値を集計して、...
-
論理名とコメント構文(?)について
-
件数の多い順にselect
-
【PHP】SQL文のSUM関数で出力し...
-
オーダーの覚え方について
おすすめ情報