在第一家公司工作大概有一年之后,我的上司开始让我负责一个项目了。

说起这个项目,其实就是类似一个报表系统的抽数据的活。我的主要工作就是将我们公司产生的数据进行抽取清理,然后生成一些带有分析性质的数据。

说干就干了,在项目开始的最初阶段,还是免不了需求分析。真的,如果不明确需求,做出来的数据再好看也是白搭。公司在沟通上有点好处就是装了腾讯通(RTX),有什么不清楚的可以直接在上面找到相关负责人进行沟通,不需要大老远的当面去咨询,对于那时候比较羞涩的我还是挺好的一个工具。

需求分析结束了,就开始设计相关表格了,那时候还不懂数据建模,只是把一些必须的数据都往一个表里放,中间如果有转换的再建个中间表而已。虽然在我离职听说这个项目还在运行,但是感觉没完善好,这些就是后话了。那时候建表就直接在SQL Server 2008上填了,定义好主键外键以及一些约束条件就完事了,贼快了。之后就开始码代码了。因为项目不大,前前后后我一个人就能搞定,只要抽数转换的逻辑正确,一般没什么问题,但就是这个逻辑上出了点问题。

数据之间的相互关联一般都用JOIN...ON来匹配两个表之间的数据,但是在匹配的时候如果匹配的条件错了,那就是差之毫厘失之千里了。

我记得是在计算一个发货数据的时候,两个表里面都有发货数据,理论上只要匹配上这些发货数据的订单ID就OK了,但是有个表里面有个发货状态,另外一个则没有,在计算的时候由于没有确定具体的发货状态,导致计算出来的结果比实际大了好多,这归根揭底还是没有对业务了解清楚。

虽然后来这个问题解决了,但是如果我当时把匹配出来明细仔细核对一遍,一眼就看出来了。我的上司后来也教育我做数据的一定要谨慎,不能有一点不清不楚,马虎大意。技术虽然掌握了,但是怎么将技术正确的发挥还是靠人,人才是最后的执行者,得对自己的东西负责!

当时说的我真的无地自容,自己也非常惭愧,从那以后凡是涉及写操作的语句我都会先查询一遍再写入到数据库,这样才能发现你写入的数据有没有问题。而不是想当然只要逻辑正确就OK了!

有关JOIN ON的心得体会的更多相关文章

  1. 从实例学习 Go 语言、"基础与进阶" 学习笔记及心得体会、Go指南

    第一轮学习 golang "基础与进阶"学习笔记,Go指南练习题目解析.使用学习资料 <Go-zh/tour tour>.记录我认为会比较容易忘记的知识点,进行补充,整 ...

  2. 关于Solr的使用总结的心得体会

    摘要:在项目中使用Solr作为搜索引擎对大数据量创建索引,提供服务,本文是作者对Solr的使用总结的一点心得体会, 具体包括使用DataImportHandler从数据库中近实时同步数据.测试Solr ...

  3. 加快FineReport报表设计的几个心得体会

    加快FineReport报表设计的几个心得体会 一.从远程服务器大批量取数进行表样设计时,最好按“列顺序”取一个“空的SQL语句”,这样可提高设计速度.否则每次设计时模板均要从远程读取数据,速度相当慢 ...

  4. 十天来学习java的心得体会

    有关学习java是几天来的心得体会: 十天学习java遇到很多问题,每个问题都是经过反复的看书本以及上网查找资料来解决的,发现这一点真的需要自己来而不是去遇到什么问题就去依靠他人(师兄.同学).在其中 ...

  5. Git的基本使用方法和安装&心得体会

    1. git的安装和github的注册.代码托管.创建organization.邀请member. (1)git的安装 因为我电脑是windows系统,所以下载的是git for windows.在官 ...

  6. "琳琅满屋"调查问卷 心得体会及结果分析

    ·关于心得体会       当时小组提出这个校园二手交易市场的时候,就确定了对象范围,仅仅是面向在校大学生,而且在我们之前就已经有了很多成功的商品交易的例子可以让我们去借鉴,再加上我们或多或少的有过网 ...

  7. 关于多本小说站的SEO—从”易读中文网”获得的心得体会

    从目前国内的网站流量来说,电影站,小说站,游戏站等的流量占总流量的比例还是很高的,许多站长把目光投入到了这几个方面,本文就着重来说对于小说站,尤其是多本小说站的SEO心得体会! 对于小说站来说,只要排 ...

  8. AngularJS心得体会

    AngularJS早些时候有过了解,知道这是一个JS的MVC框架,同类型的框架还有Backbone等.这次是由于项目需要,学习了两天的Angular后开始着手改之前的项目代码,这里大概说一下这一周学习 ...

  9. 关于Dropdownlist使用的心得体会

    2013-07-23关于Dropdownlist使用的心得体会: Dropdownlist使用最多的几个属性: 一.Dropdownlist.Items,负责包含所有选项的容器 DropDownLis ...

随机推荐

  1. Python的多线程理解,转自虫师https://www.cnblogs.com/fnng/p/3670789.html

    多线程和多进程是什么自行google补脑 对于python 多线程的理解,我花了很长时间,搜索的大部份文章都不够通俗易懂.所以,这里力图用简单的例子,让你对多线程有个初步的认识. 单线程 在好些年前的 ...

  2. java读入和输出

    一: 在python里直接使用input函数就可以,在java里,需要使用Scanner类,用System.in进行初始化,获取用户输入可以用nextLine获取字符串,nextInt获取整形数据. ...

  3. 构建Vue开发环境

    1.开发环境的准备工作 IDE 可以选择WebStom或者VisualStudio Code Node.js的安装 node + npm 调试环境 Google Chrome + Vue.js 2.什 ...

  4. 输入一批考生的的准考证号码,如果是 15 位,表示输入正确,否则重新输入。然后判断这个人的考试类别(号码中如果是以奇数结尾则考试类别为“A 类”,否则为“B 类”),最后输出此准考证的前 5 位和后 4 位,其他位用“*”来代替。说明:使用 StringBuffer 类的相关方法完成实验内容。

    因为是一批考生,所以先创建一个字符数组存放一组准考证号. 此外这个程序涉及到包装类与基本数据类型的互相转换. string的substring方法,返回一个字符串是该字符串的子串.从第一个参数开始,第 ...

  5. Spring AOP源码分析(一)使用示例

    摘要: 本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 我们知道,使用面向对象编程(OOP)有一些弊端,当需要为多个不具有继承 ...

  6. Red Hat Linux 挂载外部资源

    在我们安装的Red Hat Linux 中.当中一半机器为最主要的server配置,没有桌面环境.在从U盘上复制文件的时候可就犯难了.在网上查了查才知道.要訪问U盘就必须先将它们挂载到Linux系统的 ...

  7. 断言NSAssert的使用

    1. NSAssert 断言(NSAssert)是一个宏,在开发过程中使用NSAssert可以及时发现程序中的问题. NSAssert声明如下: #define NSAssert(condition, ...

  8. macos版本mojave 安装postgres报错

    mac os 版本mojave 安装postgres报错 事由:前几天升级mac到mojave版本也就是10.14系统,发现对于很多原系统的软件包都不兼容,安装时出现报错. 报错: pthread.h ...

  9. 三星S5-PV210内存初始化

    一.S5PV210时钟系统 时钟:一定频率的电信号.   时钟系统:基于CMOS工艺的高性能处理器时钟系统,集成PLL可以从内部触发,比从外部触发更快且更准确,能有效地避免一些与信号完整性相关的问题. ...

  10. 基于STM32F103ZET6 HC_SR04超声波测距模块

    这是最后的实验现象,改变不同的角度即可测得距离 板子 PZ6806L 超声波模块 HC_SR04 HC_SR04模块讲解 通过该超声波模块说明书,可明白供电需VCC 5V  还需GND  ECHO(回 ...