Объединение двух таблиц на основе сопоставления двух столбцов - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь объединить две таблицы: Таблица A имеет три столбца: State, County и Count (Рынки фермеров в указанном округе) Таблица B имеет несколько столбцов: штат, округ и несколько столбцов данных (например, показатель доступа к продуктам)

Я пытаюсь объединить их таким образом, чтобы подсчитать количество для каждой комбинации штата / округа (поскольку существует несколько округов с одинаковыми названиями) вместе со штатом и округом и столбцами данных из таблицы B.

Я бился головой о SAS, пытаясь найти объединение для сотрудничества. Я прочитал несколько других вопросов здесь, но я не могу найти, где ошибка в моем коде.

PROC SQL; 
CREATE TABLE WORK.QUERY1 
AS 
SELECT FMDV4.State, FMDV4.County, FMDV4.Count, CFSDV1.GROC14, 
CFSDV1.SUPERC14, CFSDV1.CONVS14, CFSDV1.SPECS14, CFSDV1.FOODINSEC_13_15, 
CFSDV1.PCT_LACCESS_POP15, CFSDV1.DIRSALES_FARMS12, CFSDV1.FMRKT16, 
CFSDV1.FOODHUB16, CFSDV1.CSA12, CFSDV1.POVRATE15, CFSDV1.PERPOV10 
    FROM FNLPRJT.CFSDV1 AS CFSDV1
    INNER JOIN FNLPRJT.FMDV4 AS FMDV4 
    ON (( CFSDV1.State = FMDV4.State ) AND ( CFSDV1.County = 
FMDV4.County )); 
QUIT;

Я также попробовал несколько вариантов, например:

PROC SQL; 
CREATE TABLE WORK.QUERY1 
AS 
SELECT FMDV4.State, FMDV4.County, FMDV4.Count, CFSDV1.GROC14, 
CFSDV1.SUPERC14, CFSDV1.CONVS14, CFSDV1.SPECS14, CFSDV1.FOODINSEC_13_15, 
CFSDV1.PCT_LACCESS_POP15, CFSDV1.DIRSALES_FARMS12, CFSDV1.FMRKT16, 
CFSDV1.FOODHUB16, CFSDV1.CSA12, CFSDV1.POVRATE15, CFSDV1.PERPOV10 
    FROM FNLPRJT.CFSDV1 AS CFSDV1
    INNER JOIN FNLPRJT.FMDV4 AS FMDV4 
    ON CFSDV1.State = FMDV4.State 
    WHERE CFSDV1.County = FMDV4.County; 
QUIT;

Я получаю таблицу из 0 строк со столбцами в том виде, в каком они должны быть (штат, округ, граф,). Я просто скучаю по чертовым данным! Может кто-нибудь помочь мне найти мою ошибку?

1 Ответ

0 голосов
/ 12 июня 2019

Можете ли вы попробовать

propcase(CFSDV1.State) = propcase(FMDV4.State) 

и

propcase(CFSDV1.County) = propcase(FMDV4.County); 

Если это не сработает, попробуйте такие символьные функции, как trim и compress удалить любые пробелы, которые могут присутствовать в данных.

...