前几天做BI Tabular表格模型的时候,数据中心核对数据发现模型展现数据比实际数据要多,经过核查之后,发现原来我是一个不经意,在做数据选取的时候,inner join的字段CITY_NAME_CN选取错误。

首先对比事实表和我数据源选取的数据量差异:正常(8080945条记录)

SELECT
count(YYYYMMDD)
FROM [DM_ACCN_T1].[dbo].[FS_MS_GFK] --

我的数据源sql:选取(8110909条记录)

SELECT  [GUID]
,[YYYYMMDD]
,[BRAND]
,[BRAND_GROUP]
,[MODEL]
,[CHANNEL]
,[SALES_UNIT]
,[SALES_VALUE]
,[PC_TYPE]
,[DESIGN]
,[PROCESSOR_BRAND]
,[PROCESSOR]
,[PROCESSOR_NUMBE]
,[STORAGE_CAPAC]
,[RAM_MB]
,[DVD_WRITER]
,[SIZE_INCH]
,[GPU_BRAND]
,[GPU_MODEL]
,[ONBOARD_GRAPHIC]
,[V_RAM]
,[OS_PLANTFORM]
,[MICROSOFT_OS]
,[CATEGORIES]
,[PPC_PRICE_BRAND]
,[DPC_PRICE_BRAND]
,a.[CITY_NAME_CN]
,a.[CITY_NAME_EN]
,ISNULL(b.CITY_CODE,0)AS CITY_CODE
,[BU_GROUP_CODE]
,A.CITY_FULL_NAME_CN
,B.CITY_FULL_NAME
,Form_Factor
,CITY_GROUP
FROM [DM_ACCN_T1].[dbo].[FS_MS_GFK] A
LEFT JOIN [DM_ACCN_T1].[dbo].[CB_GEOGRAPHY] B ON A.CITY_NAME_CN=B.CITY_NAME_CN
SELECT
count([YYYYMMDD])
FROM [DM_ACCN_T1].[dbo].[FS_MS_GFK] A
LEFT JOIN [DM_ACCN_T1].[dbo].[CB_GEOGRAPHY] B ON A.CITY_NAME_CN=B.CITY_NAME_CN

由此可见,问题出在我的事实表A join 维度表B 的时候出现问题,出现了一对多的问题。

首先,我要查一下维表CB_GEOGRAPHY对于字段CITY_NAME_CN(乡镇名称)是不是有重复,

SELECT a.CITY_NAME_CN,count(1)as num
FROM [DM_ACCN_T1].[dbo].[CB_GEOGRAPHY] a
--where a.CITY_NAME_CN=N'九江'
group by a.CITY_NAME_CN having count(1)>1

aaarticlea/png;base64,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" alt="" />

想一下很容易理解,地理维度表中,不同地区的乡镇名可能出现重名。所以特设了一个CITY_FULL_NAME的字段。那么join之后究竟是哪些字段出现了重复呢,

   SELECT b.CITY_FULL_NAME_CN,B.CITY_NAME_CN FROM [DM_ACCN_T1].[dbo].[FS_MS_GFK] B inner join
(SELECT a.CITY_NAME_CN,count(1)as num
FROM [DM_ACCN_T1].[dbo].[CB_GEOGRAPHY] a
--where a.CITY_NAME_CN=N'九江'
group by a.CITY_NAME_CN having count(1)>1 )aa ON aa.CITY_NAME_CN=B.CITY_NAME_CN

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjkAAADpCAIAAABJKLE8AAAZKUlEQVR4nO2dsW7kuJaG9Rj7CDtZO5sOXY+w4QU2MvwUkxmFeYALYwLDUQPerG8wgJ9ggE4MlIMGqjNPcIMOOnDQgYMbaAO62bJEHh5KFEWyvg8/iLKs4lHRVefwF2VV1084fj70ff/Lr/8z0vHzIVbTzmP55Z8fRw+cv33l5b5/vvipl3tnn3f/d7f8wAAAIBvddFMttcpRvahVAAAtUnStGlYjahUAwMlSdK3q+/6Xf360mv5qvDe1CgCgRUqvVRZqFQDAyVJHrXJaK2oVAMCJUEet0kKtAgBoEWoVAACUDrUKAABKZ91ahRBCCC1XXK1au3KmJXYsdue7529fEUIIlab2a5Vy5/3VnlqFEEJl6iRqlcZUUasQQqhYUauoVQghVLoW1aqu60Y/GoQto1/5ukqCXKs+/usjtQohhKrQ/FolFBvzWChF9sfpg4QIterjvz7ur/bUKoQQqkLJfNWSWrVGoer9tcoUKmoVQgjVom1qVf/Wli2sVb/9fv1f//3e6rffr+0LmdYqW6ioVQghVIs2q1XTX/lWtjTYcmULVe+pVXcf7qhVCCFUl0qpVcs91m+/Xw8LVe8/B2jLFbUKIYSq0Ma1atWLLIRrK0y5olYhhFAVWnodoHyFunDNut1htPOC2uR4IcI163cf7qhVCCFUhfhfYGoVQgiVLmoVtQohhEpX+7XKXvUXFLUKIYTKVOPfX7U730Vp878HQgihqRqvVQghhBoQtQohhFDpolYhhBAqXdQqhBBCpSu6VkkX3pXH5uOLEEJouaKvWd/8iKO0O99tfgwIIYQWKqJWVVeojp8P+6v9usYtEZsPFEIIlaz2a1UV1qqKg0QIoa2UplZd3Lh1djlW5pfnrFWf/vr06a9P93/eDzW6lW3+46xxKoAQQnmUrFbdPvavuukvPJJrVdd1wo/z5KxVtzfjK0Sevz1f3Nxu+Geoxf8hhNAmWstXTR3V2eXh7J14KKFa1fnx9SnXqpfvL4fn/vDc3z28XFxSqxBCqFClqVVDp3J4+Pn401+fXh/9p7+9OZy9u/Aex496I5SiYU3yPR5JqFXHL8fD4+HwcLh7eLm9OSysVcIxaAwitQohhASlr1U/61Pf3/95bwrVy/eX25vD+1/fuw8iVI3sllS+6vbxcP/n/e3N4e7DnVFUrZoesPOB/mipVQghJChNrbr7cHf8cjw8vF62YGXqgblyQa5V0yTurFXBxyMp16vuHl5eDdbj4fbx8PT3U3jg3hanYSsfFbUKIYRilaxWOX3V7c3h5fuLWRa6+3Dnq1Wvh+JxJMMdUvmqr//++vzt+fnb8+Gxv3t4uXt4GR7z2bsLTblyHvy8o6VWIYSQoDXPAf6nv//z/uf1C2KtEurNkv19terp76c35u/x0Pd9f3Pb31zc3hwOD1K5CpZP+QipVQghFKs0ter6j+vD4+sJQLsUZFq7JnR7cxs8B2jPpDlTv4yzZ+U5wNda1fd93z/9/XR2eXH27kJ5JYjwK3wVQgglUbJaNTyHZi6mePn+cvfh7vDcm/Ns139cC9n/zTGFrrA4utaHnBJqlTF8z9+eD88/atXNRX950ff9xc3Z7c3h7DJ8tPgqhBDKoPS1ypz3s2tUdkEoWKuGvmq4cbSP74FTcq0yherw3A+d1sv3l6e/n24fpSvsfYd3xFchhNAKSlar7FV/w/N+5vK/6z+ujXzZf5TBfTbFV8PmnQO0herw+KNWXV70l2df//314uYsWKs61+lK35HM838IIYSMktWq97++P3t3MWqHD4xUxzT3yu+pwrXqsb94PLPXMT5/ez5+OX7665P+P5flXymNILUKIYQEneJ91s2VfuY/go1ea9XlWX95dng4nF2eCbVKs5x2nNQqYaPvOBFCCBmdaK06u7z4x//+4+zywsjUqtf/Bf5xDnPGepVvyW10hpBahRBCUTrFWjWVqUxTlXacCCF0mqJWFaFajhMhhDbRSdSq6WsEAICKaLxWIYQQakAza9X+ao8QQgjl0fxatTvfIYQQQhm0qFbNP/UYT+ZwsB78KS0MBYCSpbXq+Pnw9PmwdjssjXki0q7UDv+UJRzPhm3+CR9AvSytVSQ42tkJuoTj2bClVgHowVfRbpagSzieDVtqFYAefBXtZgm6hOPZsKVWAejBV9FulqBLOJ4NW2oVgJ66fdXwnrBPk7vEClvsc50RhWc5fzvaLryWUfRhn759hIijVn6lNlY5Cdo35kfPDX+dW0Z/HeeYTP86w/2FEZPHTT4e4S81fVcDgEzFvmqUboTHw9YWBjmVTJOasGX6rKieg6nT96xRUp4+Dj4rf+ucdnRvS7XwePS3G/1l5ZEReh4VG/mvLPQWfJbvXQ0AMhX7Kk0ScW7RJ7jYAqApCcNSNE2XcuqU5/jKWNu2wWmHPJ6jLcpph/OvORxb3+RA6Nl5zM5Ymnc1AMg04quiEpwmlXQ/mBaD5b5qlM6mXsGZOkfHkzx15mnTTjs0Yz4t2NPxd04OhuOvOTZnLOW7GgBkTtFXKRPcKMVPS9SMEjjsWUidzgIm9+9LnaNYm7ebTDuGBUke2+W+ahRL+a4GABl8lTb1J/RV09Q5nMULqVPoeXnqzNNuOO2YeqbptECYiGjiRk0OqFUAehrxVb7HCxOcc4sznQk+TN+PJnVq0rr+Wfnb2ZfJ6Lf4RsY38vLkQDMl0j/L964GAJmKfdXTYIJsE8TIo0z3cW6ZpiGnFxFiOZF77vzz/WkCnb4uZ1KWe9u8UB0V/34wei2+VyT/pZxjYttplOFvfdGD75Npb/p3NQDIVOyraGts+bdu57saAGTq9lVJ2m7CKfecM0En7386LCX3TK0C0IOvos3a4quc72oAkMFX0W6WoEs4ng1bahWAnqW1an+1zyP7qc4WEa0k/pTToQAAmUW1KrP6vs8fFK0h/pTDoQCAIItqVf7TJs7Li2krbUs4Ebd5m/sTD1Ani2rVU8ZP2mtp/PJ0/Hykrb4lR/d93/eMA4CSpb6qz3Kxgy2NXdcdvxyPn4+0Vbdd53jjnSD4KgAlCXxVhlMlP085luAJaPFViWAcAJSchK+a/iPn+P86xR66rkvoJ2Kf1Uz00ZFIb8qTcV34KgAl1fsqk0yfvjw5i5Bvf/ssTevsZ150ubfmoyt9lVCr7K+cQZd8EjYBXwWgpAVfNZr7y+7B/DbKYcjeIhjdmVWHNBx9DV81+m2NJcqCrwJQkt5XdStcjhy1XtW5PJOQrIV+ovYXos9wNk1Gl32VL2jgHVxzrcJXAShJ7KtMctl2vcq5T/fDAXRvfVUn+obpPsH9g0eoidhq9Bm+qu1aha8CUFK9r5rO5Z2ze+sJurfrVcPtQ3xeZOQt9NFlp9JwdL2v+vmm9NeqaWWqulbhqwCUpF+v6rL7qtF8X96nS+2roqLHOpUGoif3VcHqVRH4KgAl1fsq/XrV1CUMvYVyjSe4vxB9Rm8NRHe3c32VvHN14KsAlLTgq0Yzep+30HgyuWff/pro85xNA9FjfZXGNkUVs5LBVwEoacFXBddRBE8Q6xW6t+teM6IvcSo1Ro/1Vb5aNX3g/LEu8FUASla5DjB5uRJ8lWaL9VVOBAcw/a3d0nn+T0vvbE4kepSvmm4flShhhxrBVwEoqf6+FXZGL5Sieb7K5xJGPWuiKyM2H132VZ2/gBmmW6Yk+VRkA18FoKSF+1bQVtdWV1RWAl8FoKQRX0VbWUuO7vseXwWgBl9Fi6/aDHwVgJIEvmp/tc8gfFVTLTm673t8FYCapb5qd77LJnxVMy2+yoCvAlCy1FdlOAE4aruuo22gzf/OKbPN/YkHqJME61V5sKccoQHwEwbGAUBJZdcBZh4dWAmmHQbGAUBJZdcBZh4dWAmmHQbGAUDJSfgq4TYHmpsdJLwQYEZXzUQfIk87TufKC6ZfAEqq91Xd4H5xmiLUeW4rJ42R4qbg+hIYm4hbim6Rpx0rBS0QfBWAkhZ81ShJyTkrba3SRHdmVX2GrTq6jyW+anbQAsFXASip7D7rqpfksVOxyXqN5K7ZoeHoFue0Y+2gBYKvAlCS0lcNS1TachW1XuWrVcMHox/1HWarFk1Gt+h9Vdu1Cl8FoCSlr+oG3wg8fJxnvUrY0itqlTCXF1KnPrpsGhqO7kS/XpUwaIHgqwCUrLJelbZQJVmvCtYqaYzEaX5U9GBv7UV3ssRXzQ5aIPgqACXprwNMXqhSrVf1kyQ4tRHBDoP7Z64W5Ud3MttXLQlaIPgqACWJfdUahUqzXhXMbr6yFJsKo4pBcIdTiO5EmHasF7RA8FUAStZar8rpq2Kzm2Z7sHPfWcQ81aKi6E6U0460QQsEXwWgJKWv6t6Sx1cF1zPsRh/S6Pg77yYnFeXozh5OIboT5bQjbdACwVcBKEm/XpXfV/WKUjTDVwlPGSX6qEKozK1NRrcopx1pgxYIvgpASeL1qpVa7rPeGPgJA+MAoKQRXwV1wbTDwDgAKMFXwQYw7TAwDgBKEviq/dU+g/BVLcG0w8A4AChZ6qt257ts4oPdDEw7DIwDgJKlvirDCUBa2obb3J94gDpJsF6VB3xVS+R855QM4wCghOsAYQOYdhgYBwAlXAcIG8C0w8A4ACg5CV8l3OZAc7ODhHdDmNFVM9GHyNOO6m4/MRumXwBKqvdV3eAuSvqbDEVlQ2Hn2OixoRuLbpGnHSsFLRB8FYCSFnzVKEnJOSttrdJEd2ZVfYatOrqPJb5qdtACwVcBKEnsq2wG3HC9ypm8ZiTrNZK7ZoeGo1uc0461gxYIvgpASUpfNSxRactVqu8F7ie+SpPphvtkqxZNRrfofVXbtQpfBaBkrfWqrrzvrxo+mNYqYS4vpE59dNk0NBzdiX69KmHQAsFXAShJv15l8l1p61XBWiWNkTjNj4oe7K296E6W+KrZQQsEXwWgpHpf5XhJusv/nDYi2GFw/8zVovzoTmb7qiVBCwRfBaAkva/aZL0qmN18ZSk2FUYVg+AOpxDdiTDtWC9ogeCrAJSk9FVDL5XTV8VmN832YOe+s4h5qkVF0Z0opx1pgxYIvgpASWJfZU+sZVuvCq5n2I0+pNHxdz49qShHd/ZwCtGdKKcdaYMWCL4KQMla61Vp2+B6VbAUzfBVwlNGiT6qECpza5PRLcppR9qgBYKvAlCy1npVzusAoTrwEwbGAUBJI74K6oJph4FxAFCCr4INYNphYBwAlCTwVfurfQbhq1qCaYeBcQBQstRX7c532cQHuxmYdhgYBwAlS31VhhOAtLQNt7k/8QB1kmC9Kg/4qpbI+c4pGcYBQAnXAcIGMO0wMA4ASrgOEDaAaYeBcQBQchK+SrjNgeZmBwnvhjCjq2aiD5GnHdXdfmI2TL8AlFTvq7rBXZT0NxmKyobCzrHRY0M3Ft0iTztWClog+CoAJS34qlGSknNW2lqlie7MqvoMW3V0H0t81eygBYKvAlCyiq/q8n4v8PglJbrP+hrJXbNDw9EtzmnH2kELBF8FoCS9rzL5ZcP1Kl+tGj4Y/ajvMFu1aDK6Re+r2q5V+CoAJYl9Vdd1mX3VNFXNq1XCXF5InfrosmloOLoT/XpVwqAFgq8CUJLYV3Vdd0z9BfZJ1quCtUoaI3GaHxU92Ft70Z0s8VWzgxYIvgpASUpfZUtUV+R6VT9JglMbEewwuH/malF+dCezfdWSoAWCrwJQkt5XWXKuVwWzm68sxabCqGIQ3OEUojsRph3rBS0QfBWAksTrVZv4qtjsptke7Nx3FjFPtagouhPltCNt0ALBVwEoSeyrhu4qj68KrmfYjT6k0fF33k1OKsrRnT2cQnQnymlH2qAFgq8CULKKr0reBtergqVohq8SnjJK9FGFUJlbm4xuUU470gYtEHwVgJJVfFXylvusNwZ+wsA4AChpxFdBXTDtMDAOAErwVbABTDsMjAOAkgS+an+1zyB8VUsw7TAwDgBKlvqq3fkum/hgNwPTDgPjAKBkqa/KcAKQlrbhNvcnHqBOEqxX5QFf1RI53zklwzgAKOE6QNgAph0GxgFACdcBwgYw7TAwDgBKTsJXCbc50NzsIOHdEGZ01Uz0IfK0o7rbT8yG6ReAkup9VTe4i5L+JkNR2VDYOTZ6bOjGolvkacdKQQsEXwWgpAVfNUpScs5KW6s00Z1ZVZ9hq47uY4mvmh20QPBVAEpS+qpREtxqvcqZvGYk6zWSu2aHhqNbnNOOtYMWCL4KQElKX9Wl/ur6eetVvlo1fDD6Ud9htmrRZHSL3le1XavwVQBKulFeMPWmn+urNlyvErb0ilolzOWF1KmPLpuGhqM70a9XJQxaIPgqACVvEpZ5sMRXWUpbrwrWKnmMhM6jogd7ay+6kyW+anbQAsFXASgZm6puga8atmnLVZL1qn6SBKc2IthhcP/M1aL86E5m+6olQQsEXwWgxJEUklwH2CVdu9J8L7Dz8XBjMI8HexY6n7fDKUR3Ikw71gtaIPgqACXd6GO/xFcNvVROXxWb3TTbg537ziLmqRYVRXeinHakDVog+CoAJY7P+RJfZU+sZVuvCq5n2I0+pNHxd95NTirK0Z09nEJ0J8ppR9qgBYKvAlCyqFYJ61XZrgN8fRmhUjTDVwlPGSX6qEKozK1NRrcopx1pgxYIvgpASWJftVLLfdYbAz9hYBwAlDTiq6AumHYYGAcAJfgq2ACmHQbGAUBJAl+1v9pnEL6qJZh2GBgHACVLfdXufJdNfLCbgWmHgXEAULLUV2U4AUhL23Cb+xMPUCc/L/O1V/0eI9er8oCvaomc75ySYRwAlDj+/Uhfq564DhBmwbTDwDgAKFlUq45cBwizYNphYBwAlJyErxJuc6C52UHCuyHM6KqZ6EPkaUd1t5+YDdMvACWvmbpeXzVdb5OL0PT1asYo+Ct9CYxNxC1Ft8jTjpWCFgi+CkDJolpViK8aJSk5Z6WtVZrozqyqz7BVR/exxFfNDlog+CoAJYtq1dRX2Qy44XqVM3nNSNZrJHfNDg1HtzinHWsHLRB8FYASx72rZ/sqW6K6pF+0GLte5UxedmP3tjZrMt1wn2zVosnoFr2vartW4asAlKS8H2DyEhW1XiVs6RW1SpjLC6lTH102DQ1Hd6Jfr0oYtEDwVQBKUt5nfZjvSluvCtYqaYzEaX5U9GBv7UV3ssRXzQ5aIPgqACVr+aq05SrJelU/SYJTGxHsMLh/5mpRfnQns33VkqAFgq8CUJLYVzkfZ1ivCmY3X1mKTYVRxSC4wylEdyJMO9YLWiD4KgAlLfiq2Oym2R7s3HcWMU+1qCi6E+W0I23QAsFXAShJ6auOgyWrbOtVwfUMu9GHNDr+zqcnFeXozh5OIboT5bQjbdACwVcBKEnpq9Zrg+tVwVI0w1cJTxkl+qhCqMytTUa3KKcdaYMWCL4KQEliX7VSy33WGwM/YWAcAJQ04qugLph2GBgHACX4KtgAph0GxgFASQJftb/aZxC+qiWYdhgYBwAlS33V7nyXTXywm4Fph4FxAFCy1FdlOAFIS9twm/sTD1AnCdar8oCvaomc75ySYRwAlHAdIGwA0w4D4wCghOsAYQOYdhgYBwAlJ+GrhNscaG52kPBuCDO6aib6EHnaUd3tJ2bD9AtASfW+qhvcRUl/k6GobCjsHBs9NnRj0S3ytGOloAWCrwJQ0oKvGiUpOWelrVWa6M6sqs+wVUf3scRXzQ5aIPgqACUpfdUoCW61XuVMXjOS9RrJXbNDw9EtzmnH2kELBF8FoCSlr+p+fBVI2kIVu17lq1XDB6Mf9R1mqxZNRrfofVXbtQpfBaBklfWqrsjvrxo+mNYqYS4vpE59dNk0NBzdiX69KmHQAsFXAShJv16VvFAlWa8K1ippjMRpflT0YG/tRXeyxFfNDlog+CoAJel9VZf6BGCq9ap+kgSnNiLYYXD/zNWi/OhOZvuqJUELBF8FoKQFX9UrspuvLMWmwqhiENzhFKI7EaYd6wUtEHwVgJIWfFVsdtNsD3buO4uYp1pUFN2JctqRNmiB4KsAlFTvq5SL7Z0faXT8nU9PKsrRnT2cQnQnymlH2qAFgq8CUJLeV63RBtergqVohq8SnjJK9FGFUJlbm4xuUU470gYtEHwVgJL0vmqNlvusNwZ+wsA4AChpxFdBXTDtMDAOAErwVbABTDsMjAOAkgS+an+1zyB8VUsw7TAwDgBKlvqq3fkum/hgNwPTDgPjAKBkqa/KcAKQlrbhNvcnHqBOEqxX5QFf1RI53zklwzgAKOE6QNgAph0GxgFACdcBwgYw7TAwDgBKTsJXCbc50NzsIOHdEGZ01Uz0IfK0o7rbT8yG6ReAkup9VTe4i5L+JkNR2VDYOTZ6bOjGolvkacdKQQsEXwWgpAVfNUpScs5KW6s00Z1ZVZ9hq47uY4mvmh20QPBVAEoS+yqbATdcr3ImrxnJeo3krtmh4egW57Rj7aAFgq8CUJLSVw1LVNpylep7gfuJr9JkuuE+2apFk9Etel/Vdq3CVwEoSemrusE3V3VJv8UqyfdXDR9Ma5UwlxdSpz66bBoaju5Ev16VMGiB4KsAlCRer7L5rrT1qmCtksZInOZHRQ/21l50J0t81eygBYKvAlDy/0xOr13CfnRWAAAAAElFTkSuQmCC" alt="" />

发现这些记录数为:29964,而且全是出在'九江'这个地方,8080945-8110909=-29964,BINGO!

故:出现了一对多的情况,join之后出现了DOUBLE的数据,

SELECT
A.CITY_FULL_NAME_CN
,B.CITY_FULL_NAME
,A.CITY_NAME_CN
,B.CITY_NAME_CN
FROM [DM_ACCN_T1].[dbo].[FS_MS_GFK] A
inner JOIN [DM_ACCN_T1].[dbo].[CB_GEOGRAPHY] B ON A.CITY_NAME_CN=B.CITY_NAME_CN
where b.CITY_NAME_CN=N'九江' -- SELECT
A.CITY_FULL_NAME_CN
,B.CITY_FULL_NAME
,A.CITY_NAME_CN
,B.CITY_NAME_CN
FROM [DM_ACCN_T1].[dbo].[FS_MS_GFK] A
LEFT JOIN [DM_ACCN_T1].[dbo].[CB_GEOGRAPHY] B ON A.CITY_FULL_NAME_CN=B.CITY_FULL_NAME
where b.CITY_NAME_CN=N'九江' ----29964

修改之后,LEFT JOIN  [DM_ACCN_T1].[dbo].[CB_GEOGRAPHY] B ON A.CITY_FULL_NAME_CN=B.CITY_FULL_NAME,okay!

SELECT  [GUID]
,[YYYYMMDD]
,[BRAND]
,[BRAND_GROUP]
,[MODEL]
,[CHANNEL]
,CASE [CHANNEL]WHEN 'NON-ITS'THEN'3C'WHEN 'INTERNET B2C'THEN'NC'WHEN 'ASSB'THEN'TC'WHEN 'CS'THEN'TC'ELSE'TC' END AS CHANNEL_TYPE_CODE
,[SALES_UNIT]
,[SALES_VALUE]
,[PC_TYPE]
,[DESIGN]
,[PROCESSOR_BRAND]
,[PROCESSOR]
,[PROCESSOR_NUMBE]
,[STORAGE_CAPAC]
,[RAM_MB]
,[DVD_WRITER]
,[SIZE_INCH]
,[GPU_BRAND]
,[GPU_MODEL]
,[ONBOARD_GRAPHIC]
,[V_RAM]
,[OS_PLANTFORM]
,[MICROSOFT_OS]
,[CATEGORIES]
,[PPC_PRICE_BRAND]
,[DPC_PRICE_BRAND]
,a.[CITY_NAME_CN]
,a.[CITY_NAME_EN]
,ISNULL(b.CITY_CODE,0)AS CITY_CODE
,[BU_GROUP_CODE]
,A.[CITY_FULL_NAME_CN]
,Form_Factor
,isnull(CITY_GROUP,'')as CITY_GROUP
FROM [DM_ACCN_T1].[dbo].[FS_MS_GFK] A
LEFT JOIN [DM_ACCN_T1].[dbo].[CB_GEOGRAPHY] B ON A.CITY_FULL_NAME_CN=B.CITY_FULL_NAME

sql 数据处理时join字段慎重选择--避免出现double数据!的更多相关文章

  1. oracle中使用sql查询时字段为空则赋值默认

    转至:http://www.th7.cn/db/Oracle/201501/86125.shtml oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 oracle 函数介绍之nvl ...

  2. sql之left join、right join、inner join的区别,连接自己时的查询结果测试

    sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括 ...

  3. PowerDesigner PDM生成sql脚本时:表的名称和表里面的字段名称都有引号解决。。。

    PowerDesigner PDM生成sql脚本时:表的名称和表里面的字段名称都有引号解决... 1.当你的PowerDesigner 是新安装时,你得设置可能就会出现一些问题,在这里比如:PDM生成 ...

  4. SQL语句更新时间字段的年份、月份、天数、时、分、秒

    SQL语句更新时间字段的年份.月份.天数.时.分.秒 --修改d表日期字段的年份update dset birth=STUFF(convert(nvarchar(23),birth,120),1,4, ...

  5. NANDflash和NORflash的区别(设计师在使用闪存时需要慎重选择)

    NANDflash和NORflash的区别(设计师在使用闪存时需要慎重选择)     NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底 ...

  6. PL/SQL Developer中输入SQL语句时如何自动提示字段

    在PL/SQL Developer中编写sql语句时,如果无法自动提示字段那是一件痛苦的事情,工作效率又低,在此演示下如何在PL/SQL Developer工具中自动提示字段,让开发者省时又省心,操作 ...

  7. [慢查优化]建索引时注意字段选择性 & 范围查询注意组合索引的字段顺序

    文章转自:http://www.cnblogs.com/zhengyun_ustc/p/slowquery2.html 写在前面的话: 之前曾说过"不要求每个人一定理解 联表查询(join/ ...

  8. SQL查询优化 LEFT JOIN和INNER JOIN

    作者:VerySky 推荐:陈敬(Cathy) SQL查询优化 LEFT JOIN和INNER JOIN 1,连接了八个数据库表,而且全部使用LEFT JOIN,如下所示: Resource_Reso ...

  9. 0104探究MySQL优化器对索引和JOIN顺序的选择

    转自http://www.jb51.net/article/67007.htm,感谢博主 本文通过一个案例来看看MySQL优化器如何选择索引和JOIN顺序.表结构和数据准备参考本文最后部分" ...

随机推荐

  1. Redis实现关注关系

    最近使用关系型数据库实现了用户之间的关注,于是思考换一种思路,使用Redis实现用户之间的关注关系. 综合考虑了一下Redis的几种数据结构后,觉得可以用集合实现一下. 假设"我" ...

  2. 16.Oct Working Note

    01 writing algorithm by assembly,but the bug... now,it runs normaly,but how to print the answer? suc ...

  3. 反射:获取枚举类型的Name,Value,Description

    [Obsolete("请使用新的方法XXX")] //使用Obsolete特性来告诉使用者这是一个过期的方法 private static void Test() { Type t ...

  4. ThinkPHP 提供Auth 权限管理、支付宝、微信支付、阿里oss、友盟推送、融云即时通讯、云通讯短信、Email、Excel、PDF 等等

    多功能 THinkPHP 开源框架 项目简介:使用 THinkPHP 开发项目的过程中把一些常用的功能或者第三方 sdk 整合好,开源供亲们参考,如 Auth 权限管理.支付宝.微信支付.阿里oss. ...

  5. [转] Protobuf高效结构化数据存储格式

    从公司的项目源码中看到了这个东西,觉得挺好用的,写篇博客做下小总结.下面的操作以C++为编程语言,protoc的版本为libprotoc 3.2.0. 一.Protobuf? 1. 是什么?  Goo ...

  6. 百度网盘web端项目总结

    项目背景 网盘作为一个在线备份存储,共享文件的工具类产品,给人们的工作和生活带来了很大的帮助和便利.百度网盘是目前国内使用量最大的网盘产品,至今发展已有4年,总用户数超4亿,为了让用户有着更好的使用体 ...

  7. 栈内存不是只有2M吗?为什么不溢出?

    #include <stdio.h> #include <wchar.h> #include <stdlib.h> #define MAX_PATH 1024 FI ...

  8. spring源码解析之IOC容器(四)——属性注入

    上一篇跟踪了bean的创建过程,接下来,我们继续跟踪bean的属性填充的过程.先回到doCreateBean方法,代码如下: protected Object doCreateBean(final S ...

  9. vue history 模式打包部署在域名的二级目录的配置指南

    最近在做项目,需要把项目部署在域名下的二级目录,并且是在用vue-router的history 模式. 我们都知道vue-router 的两种前端基本访问模式 hash 和history .hash ...

  10. Spark学习之路(十一)—— Spark SQL 聚合函数 Aggregations

    一.简单聚合 1.1 数据准备 // 需要导入spark sql内置的函数包 import org.apache.spark.sql.functions._ val spark = SparkSess ...