MS-SQL Connect
# MS SQL서버 연결
con109 <- dbConnect(odbc::odbc(),
Driver = "ODBC Driver 17 for SQL Server", # MSSQL용 드라이버
Server = "211.106.159.109", # 서버 이름
Database = "PDANADB", # 데이터베이스 이름
UID = "lbsadmin", # 사용자 이름
PWD = "Embrain3**9", # 비밀번호
Port = 1433)
con113 <- dbConnect(odbc::odbc(),
Driver = "ODBC Driver 17 for SQL Server", # MSSQL용 드라이버
Server = "211.106.159.113", # 서버 이름
Database = "PDVISDB", # 데이터베이스 이름
UID = "spuser", # 사용자 이름
PWD = "tyvldvosjf", # 비밀번호
Port = 1433)
SQL Query Test
Q1 <- "
WITH CTE_PRODUCT AS (
select PP.PACKAGE_PRODUCT_ID AS PRODUCTID
FROM MST_PRODUCT_PACKAGE AS PP
INNER JOIN MST_PRODUCT AS MP ON PP.CHILD_PRODUCT_ID = MP.PRODUCT_ID
INNER JOIN (SELECT * FROM MST_PRODUCT_VALUE_ITEM WHERE VARIABLE = 'V_2_28') AS PVI
ON PVI.TARGET_VARIABLE = MP.PRODUCT_ID
WHERE MP.KANCLASS_CODE = '21170102'
AND PVI.VALUE = '001'
UNION
SELECT MP.PRODUCT_ID
FROM MST_PRODUCT AS MP
INNER JOIN (SELECT * FROM MST_PRODUCT_VALUE_ITEM WHERE VARIABLE = 'V_2_28') AS PVI
ON PVI.TARGET_VARIABLE = MP.PRODUCT_ID
WHERE MP.KANCLASS_CODE = '21170102'
AND PVI.VALUE = '001'
AND MP.GUBUN = 'S'
)
SELECT TOP 10 *
FROM CTE_PRODUCT AS CP
INNER JOIN MST_PRODUCT AS MP
ON MP.PRODUCT_ID = CP.PRODUCTID
INNER JOIN MST_PRODUCT_SKU AS PS
ON MP.SKU_CODE = PS.SKU_CODE
WHERE MP.IS_USED = 1 AND MP.IS_CLEANSED = 1
"
R1 <- dbGetQuery(con109, Q1)
print(R1[1:10, ])
## PRODUCTID PRODUCT_ID SKU_CODE COMPANY_CODE KANCLASS_CODE BRAND_CODE
## 1 4223 4223 SKU_1854 C17354 21170102 B0000639
## 2 8088 8088 SKU_3044 C12254 21170102 B0000895
## 3 8089 8089 SKU_3038 C12254 21170102 B0000895
## 4 8091 8091 SKU_3039 C12254 21170102 B0000895
## 5 8092 8092 SKU_3045 C12254 21170102 B0000895
## 6 8093 8093 SKU_3041 C12254 21170102 B0000895
## 7 8094 8094 SKU_3040 C12254 21170102 B0000895
## 8 1129433 1129433 SKU_3797 C13438 21170102 B0000853
## 9 1129437 1129437 SKU_3802 C13438 21170102 B0000853
## 10 1129438 1129438 SKU_3807 C13438 21170102 B0000853
## COMPANY_BRAND_CODE GUBUN VOLUME VOLUME_UNIT SUB_BRAND IS_USED
## 1 C17354_B0000639 S 793 G <NA> TRUE
## 2 C12254_B0000895 S 794 G <NA> TRUE
## 3 C12254_B0000895 S 1700 G <NA> TRUE
## 4 C12254_B0000895 S 794 G <NA> TRUE
## 5 C12254_B0000895 S 794 G <NA> TRUE
## 6 C12254_B0000895 S 794 G 오레오 TRUE
## 7 C12254_B0000895 S 1700 G 오레오 TRUE
## 8 C13438_B0000853 S 245 G <NA> TRUE
## 9 C13438_B0000853 S 260 G <NA> TRUE
## 10 C13438_B0000853 S 750 G <NA> TRUE
## DATE_CREATED DATE_OPENED IS_CLEANSED SKU_CODE
## 1 2023-03-14 14:12:36 2023-03-14 14:12:36 TRUE SKU_1854
## 2 2023-03-14 14:12:36 2023-03-14 14:12:36 TRUE SKU_3044
## 3 2023-03-14 14:12:36 2023-03-14 14:12:36 TRUE SKU_3038
## 4 2023-03-14 14:12:36 2023-03-14 14:12:36 TRUE SKU_3039
## 5 2023-03-14 14:12:36 2023-03-14 14:12:36 TRUE SKU_3045
## 6 2023-03-14 14:12:36 2023-03-14 14:12:36 TRUE SKU_3041
## 7 2023-03-28 18:04:42 2023-03-28 17:13:58 TRUE SKU_3040
## 8 2023-03-14 14:12:36 2023-03-14 14:12:36 TRUE SKU_3797
## 9 2023-03-14 14:12:36 2023-03-14 14:12:36 TRUE SKU_3802
## 10 2023-03-14 14:12:36 2023-03-14 14:12:36 TRUE SKU_3807
## SKU_NAME IS_USED
## 1 글로벌와이케이 빌라빅토리아 냉동밀또띠아 10인치 냉동 793G TRUE
## 2 서영이앤티 필라델피아치즈케익 클래식 냉동 794G TRUE
## 3 서영이앤티 필라델피아치즈케익 냉동 1700G TRUE
## 4 서영이앤티 필라델피아치즈케익 라즈베리스월 냉동 794G TRUE
## 5 서영이앤티 필라델피아치즈케익 터틀 냉동 794G TRUE
## 6 서영이앤티 필라델피아치즈케익 오레오 냉동 794G TRUE
## 7 서영이앤티 필라델피아치즈케익 오레오 냉동 1700G TRUE
## 8 에스에이치에스 파스키에 바닐라라즈베리케이크 냉동 245G TRUE
## 9 에스에이치에스 파스키에 오페라 냉동 260G TRUE
## 10 에스에이치에스 파스키에 플란 냉동 750G TRUE
## DATE_CREATED
## 1 2023-05-02 10:33:48
## 2 2023-05-02 10:33:48
## 3 2023-05-02 10:33:48
## 4 2023-05-02 10:33:48
## 5 2023-05-02 10:33:48
## 6 2023-05-02 10:33:48
## 7 2023-05-02 10:33:48
## 8 2023-05-02 10:33:48
## 9 2023-05-02 10:33:48
## 10 2023-05-02 10:33:48
Q2 <- "
SELECT
DISTINCT PC.PRODUCTID
,PC.PRODUCTCODE
,PC.PRODUCTNAME
,PC.KANCLASSCODE_NEW
,CT.CLASSNAME4 AS CLASSNAME4_NEW
,PC.CONAMEK
,PC.NPNAME
FROM PURCHASE AS P
INNER JOIN PURCHASEDETAIL AS PD
ON PD.RECEIPT_ID = P.RECEIPT_ID
INNER JOIN PRODUCT AS PC
ON PC.PRODUCTID = PD.PRODUCTID
LEFT JOIN PRODUCTCATEGORY AS CT
ON CT.KANCLASSCODE = PC.KANCLASSCODE_NEW
WHERE P.RECEIPT_DATE BETWEEN '2022-01-01' AND '2024-06-30'
AND PC.KANCLASSCODE_NEW IN ('21120308')
"
R2 <- dbGetQuery(con113, Q2)
print(R2[1:10, ])
## PRODUCTID PRODUCTCODE PRODUCTNAME
## 1 1492164 8801007231969 씨제이제일제당 크레잇 꼬마핫도그 냉동 1250G
## 2 1494022 8801007539010 씨제이제일제당 고메 크리스피핫도그 냉동 80G*6
## 3 1494879 8801007678702 씨제이제일제당 고메 치즈크리스피핫도그 냉동 85G*5
## 4 1495526 8801007779775 씨제이제일제당 고메 치즈크리스피핫도그 냉동 85G*10
## 5 1495565 8801007785547 씨제이제일제당 고메 빅크리스피핫도그 냉동 130G*4
## 6 1495801 8801007825335 씨제이제일제당 고메 포테이토치즈핫도그 냉동 100G*4
## 7 1526247 8801045750408 오뚜기 맛있는 오리지널핫도그 냉동 80G*5
## 8 1526248 8801045750415 오뚜기 맛있는 치즈핫도그 냉동 80G*5
## 9 1526249 8801045750422 오뚜기 맛있는 할라피뇨핫도그 냉동 80G*5
## 10 1533875 8801047338048 동원F&B 컨트리핫도그 냉동 250G
## KANCLASSCODE_NEW CLASSNAME4_NEW CONAMEK NPNAME
## 1 21120308 핫도그류 CJ제일제당(주) 쉐프솔루션 꼬마핫도그
## 2 21120308 핫도그류 CJ제일제당(주) 고메 크리스피핫도그
## 3 21120308 핫도그류 CJ제일제당(주) 고메 치즈크리스피핫도그
## 4 21120308 핫도그류 CJ제일제당(주) 고메 치즈 크리스피 핫도그
## 5 21120308 핫도그류 CJ제일제당(주) 고메 빅 크리스피핫도그
## 6 21120308 핫도그류 CJ제일제당(주) 고메 포테이토치즈핫도그
## 7 21120308 핫도그류 (주)오뚜기 맛있는 오리지널핫도그
## 8 21120308 핫도그류 (주)오뚜기 맛있는 치즈핫도그
## 9 21120308 핫도그류 (주)오뚜기 맛있는 할라피뇨 핫도그
## 10 21120308 핫도그류 (주)동원F&B 컨트리핫도그