teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

質問本文を修正しました。

2021/04/19 08:18

投稿

yowayowanitohei
yowayowanitohei

スコア31

title CHANGED
File without changes
body CHANGED
@@ -17,14 +17,14 @@
17
17
  取り出す抽出方法がわかりませんでした。。。
18
18
 
19
19
  ```ここに言語を入力
20
- SELECT stores.*,categories.category,meshcodes.cityname
20
+ SELECT stores.*,categories.category,cities.cityname
21
21
  FROM(SELECT storecode,buildcode,lat.lng,date,rank() OVER (PARTITION BY storecode ORDER BY date DESC) AS rank
22
22
  FROM stores
23
23
           WHERE (storecode = 'A01' AND date <= '2021-04-19')
24
24
  OR (storecode = 'B02' AND date <= '2021-04-20')
25
25
  AS storetable
26
26
  LEFT OUTER JOIN categories ON stores.buildcode = categories.buildcode
27
- LEFT OUTER JOIN meshcode ON (latとlngを元に計算する式の為省略) = meshcodes.meshcode
27
+ LEFT OUTER JOIN meshcode ON (latとlngを元に計算する式の為省略) = cities.meshcode
28
28
  WHERE rank = 1
29
29
  ```
30
30
 

3

質問本文を修正しました。

2021/04/19 08:18

投稿

yowayowanitohei
yowayowanitohei

スコア31

title CHANGED
File without changes
body CHANGED
@@ -20,10 +20,12 @@
20
20
  SELECT stores.*,categories.category,meshcodes.cityname
21
21
  FROM(SELECT storecode,buildcode,lat.lng,date,rank() OVER (PARTITION BY storecode ORDER BY date DESC) AS rank
22
22
  FROM stores
23
- WHERE storecode = 'A01' AND date <= '2021-04-19'
23
+          WHERE (storecode = 'A01' AND date <= '2021-04-19')
24
- OR storecode = 'B02' AND date <= '2021-04-20') AS storetable
24
+ OR (storecode = 'B02' AND date <= '2021-04-20')
25
+ AS storetable
25
26
  LEFT OUTER JOIN categories ON stores.buildcode = categories.buildcode
26
27
  LEFT OUTER JOIN meshcode ON (latとlngを元に計算する式の為省略) = meshcodes.meshcode
28
+ WHERE rank = 1
27
29
  ```
28
30
 
29
31
  複数のテーブルを結合しつつ同時に複数条件で検索を行う際に

2

質問本文を修正しました。

2021/04/19 07:52

投稿

yowayowanitohei
yowayowanitohei

スコア31

title CHANGED
File without changes
body CHANGED
@@ -23,7 +23,7 @@
23
23
  WHERE storecode = 'A01' AND date <= '2021-04-19'
24
24
  OR storecode = 'B02' AND date <= '2021-04-20') AS storetable
25
25
  LEFT OUTER JOIN categories ON stores.buildcode = categories.buildcode
26
- LEFT OUTER JOIN meshcode ON (latとlngを元に計算する) = meshcodes.meshcode
26
+ LEFT OUTER JOIN meshcode ON (latとlngを元に計算する式の為省略) = meshcodes.meshcode
27
27
  ```
28
28
 
29
29
  複数のテーブルを結合しつつ同時に複数条件で検索を行う際に

1

質問本文を修正しました。

2021/04/19 05:23

投稿

yowayowanitohei
yowayowanitohei

スコア31

title CHANGED
File without changes
body CHANGED
@@ -4,9 +4,9 @@
4
4
 
5
5
  ![3つのテーブルの用意があります。](c4fff66c9efd8069e1e9d703b9c28358.png)
6
6
 
7
- 上記3つのテーブルを結合し、店コードと日付で検索を行い結果を取得したいと考えており、
7
+ 上記3つのテーブルを結合し、店コードと日付で検索を行い結果を取得したいです。
8
- 街テーブルからは緯度経度をもとに計算を行い結果をもとに結合を行っております。
9
8
 
9
+ 街テーブルからは緯度経度をもとに計算を行い結果をもとに結合を行っておりますが
10
10
  緯度経度の性質上、隣り合った市区町村で緯度経度が被ってしまうことがあり、
11
11
  もし緯度経度で複数の市区町村が抽出された場合は街コードが大きいものを取得したいと考えております。
12
12
 
@@ -14,7 +14,7 @@
14
14
  試したこと
15
15
  以下のsqlで店コードが指定のものかつ日付が指定の範囲でいちばん大きい結果を取得
16
16
  することができましたが、meshcodeが複数該当してしまった場合に街コードが大きいものを一件
17
- 取り出す方法がわかりませんでした
17
+ 取り出す抽出方法がわかりませんでした。。。
18
18
 
19
19
  ```ここに言語を入力
20
20
  SELECT stores.*,categories.category,meshcodes.cityname
@@ -26,9 +26,9 @@
26
26
  LEFT OUTER JOIN meshcode ON (latとlngを元に計算する) = meshcodes.meshcode
27
27
  ```
28
28
 
29
- 複数のテーブルを結合し同時に複数条件で検索を行
29
+ 複数のテーブルを結合しつつ同時に複数条件で検索を行う際に
30
- それぞれの該当結果が複数ある場合に
30
+ それぞれの該当結果が複数ある場合での結果をそれぞれ一件絞り込む方法について
31
- 結果を絞り込む方法について効率的な方法をご存知でしたらお伺いしたいです。
31
+ ご存知でしたらお伺いしたいです。
32
32
 
33
33
  質問が長く見づらくなってしまい大変お手数をおかけしますが、どうぞよろしくお願い致します。
34
34
  また、わかりにくい点や説明不足/不明点等ございましたらご指摘をお願い致します。