마포돌주먹
225
2021-09-16 14:25:05
6
200

sql 합치기 질문이요


이 두개의 컬럼이 다 다르잖아요 한 줄로(가로로) 합치기 가능 한가요??

-1
0
  • 답변 6

  • 파랭이
    301
    2021-09-16 14:31:44

    항상 각각 데이터가 하나뿐인가요?

    둘 이상이 나올 수 있으면 서로가 같은 데이터 라는 키가 있어야 하는데... 안보이는 듯요.. 숨겨져 있나요?

    하나뿐이라면 그냥 Join하듯이 항상 같은 연결을 두면 테이블은 연결 될 터이고,

    select문에 각 필드를 나열하거나 * 하면 되겠지요. 

  • 마포돌주먹
    225
    2021-09-16 14:35:59

    파랭이

    SELECT
    revenue AS revenue,
    grossProfit AS grossProfit,
    operatingIncomeLoss AS operatingIncomeLoss,
    profitLoss AS profitLoss,
    comprehensiveIncome AS comprehensiveIncome,
    assets AS assets,
    liabilities AS liabilities,
    equity AS equity,
    cashFlowsFromUsedInOperatingActivities AS cashFlowsFromUsedInOperatingActivities,
    cashFlowsFromUsedInInvestingActivities AS cashFlowsFromUsedInInvestingActivities,
    cashFlowsFromUsedInFinancingActivities AS cashFlowsFromUsedInFinancingActivities,
    increaseDecreaseInCashAndCashEquivalents AS increaseDecreaseInCashAndCashEquivalents,
    currentAssets AS currentAssets,
    currentLiabilities AS currentLiabilities,
    costOfSales AS costOfSales,
    shortTermTradeReceivable AS shortTermTradeReceivable,
    inventories AS inventories,
    propertyPlantAndEquipment AS propertyPlantAndEquipment,
    revenueCumulativeAmount AS revenueCumulativeAmount,
    grossProfitCumulativeAmount AS grossProfitCumulativeAmount,
    operatingIncomeLossCumulativeAmount AS operatingIncomeLossCumulativeAmount,
    profitLossCumulativeAmount AS profitLossCumulativeAmount,
    comprehensiveIncomeCumulativeAmount AS comprehensiveIncomeCumulativeAmount,
    '035720',
    '2021',
    'CFS',
    '11013'
    FROM tb_web_financial_statement T1
    INNER JOIN
    (
    SELECT t3.ISU_SRT_CD,
    t2.CORP_CODE
    FROM tb_stock_list t3
    , tb_corpcode t2
    WHERE t3.ISU_SRT_CD = t2.STOCK_CODE
    AND t3.ISU_SRT_CD = '035720'
    AND t3.DELETE_YN = 'N'
    ) T2
    ON T1.CORP_CODE = T2.CORP_CODE
    AND T1.BSNS_YEAR = '2020'
    AND T1.FS_DIV = 'CFS'
    AND T1.REPRT_CODE = '11013'
    LEFT JOIN tb_unregistered_executive T4
    ON T1.SEQ = T4.SEQ
    WHERE 1 = 1

    UNION ALL

    SELECT
    STOCK_CODE AS stockCode,
    CORP_CODE AS corpCode,
    BSNS_YEAR AS bsnsYear,
    REPRT_CODE AS reprtCode,
    RCEPT_NO AS rceptNo,
    CORP_CLS AS corpCls,
    CORP_CODE AS corpCode,
    CORP_NAME AS corpName,
    SE AS se,
    NMPR AS nmpr,
    FYER_SALARY_TOTAMT AS fyerSalaryTotamt,
    JAN_SALARY_AM AS janSalaryAm,
    RM AS rm,
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    ''
    FROM TB_UNREGISTERED_EXECUTIVE
    WHERE (STOCK_CODE = '005930'
    AND CORP_CODE = '00126380'
    AND BSNS_YEAR = '2020'
    AND REPRT_CODE = '11012')


  • 마포돌주먹
    225
    2021-09-16 14:37:08

    파랭이

    이렇게 유니온 올 써보니까 위에 SELECT한 컬럼에 아래 SELECT한 테이블 값이 들어가는데 아래 SELECT한 컬럼도 들어가게 하려면 어떻게 해야 할까요??

  • Eleutherius
    1k
    2021-09-16 15:07:48

    제 솔직한 의견 말씀드립니다.

    쿼리 작성하는게 회사 업무인것같은데 질문 올리시는거 보면 쿼리를 거의 모른다는 생각이 듭니다.

    join과 union이 각각 어떤건지 구분도 안되시구요

    해당 쿼리는 join으로 해결해야됨을 어제 말씀드렸음에도 union으로 시도하고 계신것보면 더더욱 그렇구요

    join과 관련해서 search는 해보신건지 모르겠어요.........


    해당 업무를 Q&A게시판에 올려서 해결했다고 치면 회사에서는 당연히 할줄안다고 판단하고 동일한 업무를 또 줄것입니다.
    그때마다 스스로 공부해가면서 쿼리를 작성하시는 것이 아닌 Q&A게시판에 의존하실건가요...?


    해당 부분에 대해서 해결할 능력이 안됨을 회사에 어필 할 필요가 있다고 느낍니다.

  • 마포돌주먹
    225
    2021-09-16 15:18:03

     Eleutherius

    네 search해봤는데도 잘 모르겠어서 질문 올렸습니다 ㅠㅠ 근데 회사에 어필을 해도 제 위에 아무도 없고해서 알아서 공부하면서 해결하라고해서 저도 답답하네요..

  • 파랭이
    301
    2021-09-16 15:55:31

    기본적으로는 Eleutherius님 말씀대로 join문으로 해결해야 합니다. 

    모르시면 배워서라도 그렇게 해야 합니다. 

    데이터에 따라 Union 으로 억지로 처리는 가능한 경우도 있습니다만,

    그러나 기본은 join입니다. 이건요 DB를 다루신다면 기본중의 기본입니다.

    어렵냐구요? 아니오 절대 어렵지 않습니다. 도전 하는 것 아닙니다. 그냥 해야하는 것입니다.

    간단한 책을 사셔도 되고, 인터넷 보셔도 쉽게 공부 할 수 있을 것입니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.