2017-01-18 11 views
0

У меня есть две таблицы; один является справочной таблицей all_grid, а другой имеет данные о клиенте на нем t_customer.Вычитание таблиц SQLite3

Мне нужно представить строки, которые находятся в справочной таблице, но не в таблице клиентов (т. Е. Показать строки, в которых столбцы customer_x и customer_y присутствуют в all_grid, но не в t_customer). Столбцы называются одинаковыми в обеих таблицах, но t_customer также имеет столбец идентификаторов.

В настоящее время я пытался

SELECT customer_x, customer_y FROM all_grid 
EXCEPT 
SELECT customer_x, customer_y FROM t_customer; 

, но это, кажется, просто показать все строки в all_grid, и я не уверен, какая терминология использовать для SQLite.

t_customer таблица выглядит следующим образом:

1|35|24 
2|-20|30 
3|-10|-20 
4|35|-46 
5|4|-19 
6|30|36 
7|-12|-24 
8|-12|-16 
9|-17|-10 
10|99|99 
11|-4|-29 
12|35|24 
13|13|28 
14|99|99 
15|-24|-3 
16|-49|-39 
17|99|99 
18|-48|-44 
19|-46|35 
20|-28|-47 
21|99|99 
22|99|99 
23|31|22 
24|4|14 
25|5|6 
26|32|24 
27|-34|-4 
28|29|25 
29|-12|-31 
30|99|99 
31|-17|41 
32|-20|-42 
33|99|99 
34|-4|40 

и all_grid это все 100 возможная смесь из customer_x и customer_y округлена до ближайшего 10, и (90, 90) включено.

+1

Должна быть какая-то разница. Покажите некоторые данные примера. –

+0

Спасибо за помощь @CL. но я осознал свое невежество и сделал, как описано в моем ответе. –

ответ

0

Извинения, я понял, что сделал что-то глупое и не считал, что данные t_customer округлены до 10 в предыдущих вычислениях.

Мой последний вопрос был:

SELECT (customer_x * 10), (customer_y * 10) FROM all_grid 
EXCEPT 
SELECT 10 * (t.customer_x/10), 10 * (t.customer_y/10) FROM 
(SELECT CASE WHEN customer_x < 0 THEN customer_x - 10 ELSE customer_x END AS customer_x, 
CASE WHEN customer_y < 0 THEN customer_y - 10 ELSE customer_y END AS customer_y 
FROM t_customer) t 

и, кажется, сделать трюк.

 Смежные вопросы

  • Нет связанных вопросов^_^