基礎表:日誌表+臨時表+物件表+流水表+歷史記錄表
create table `顧客待裁決` (
`顧客編號` int(11) unsigned not null auto_increment,
`許可` varchar(20) default null,
`顧客姓名` varchar(30) default '' comment '姓名/公司名字',
`**號碼` varchar(20) default '',
`銷售顧問` varchar(50) default null,
`所屬銷售顧問` varchar(50) default null comment '解決歸屬權問題',
`更新時間` timestamp null default current_timestamp on update current_timestamp,
`crm戰敗確認` int(2) default null comment '0-crm確認戰敗;1-待sm分配;2-分配完成',
primary key (`顧客編號`)
1.少見的sql ,
select
sum( a.**號碼=12345678955)
from
`顧客待裁決` a ---- 算這個**號碼有多少的數量
2. 去重
select count(distinct a.**號碼) ,
a.顧客姓名 from
`顧客待裁決` a
group by a.**號碼
3. 兩個**相等會怎麼樣
if( format(a.**,4)=format(b.**,4) ,'已確認','待確認' )
4. 把結果集的某一列當成是查詢條件
select
sum( a.**號碼=12345678955),
( select b.顧客姓名 from 顧客記錄彙總 b
where b.**號碼= a.**號碼) as 顧客姓名
from
顧客待裁決 a
5.一句話查詢出所有角色的許可權
角色表 :角色編號+角色
許可權表: 許可權編號+許可權名字
角色許可權表: 角色編號+許可權編號 -------------------- 許可權名字為0 的證明沒有這個許可權
select c.角色,
max( case 許可權名字 when b.許可權名字 then a.角色編號 else 0 end ) 許可權名字
from 角色表 c
left join 角色許可權表 a
left join 許可權表 b
group by c.角色
5.遇到多表關聯時,選取的主表一定要是資料**,是直接輸入的第一手資料,
利用主表再去做各種關聯,
6.強行關聯
union用的比較多union all是直接連線,
取到得是所有值,記錄可能有重複
union 是取唯一值,記錄沒有重複
select a.**號碼 ,a.銷售顧問, '' 所屬銷售顧問 from
`顧客待裁決` a
union
select a.**號碼 ,a.銷售顧問 ,a.所屬銷售顧問 from
`顧客記錄彙總` a
7. group_concat就是 把某一列的資訊全部都拼接在一行
6. 使用分組後就會是每個組的拼接
時間函式:
year(`日期`) =:year and month(`日期`)=:month
where `開始日期`<=curdate() and `結束日期`>=curdate()8. 當a表 ---b和c都關聯
或者 a會被 b 的a,b兩個不同的列做關聯,要十分的注意,
最好乙個在 from後做關聯,
乙個在from前 結果集的 查詢b.b做關聯,把結果當條件
那些年意外看到的方法
學習 1 學習 2 關於樹狀陣列,顧名思義,就是數形狀的陣列,主要用於查詢任意兩位之間的所有元素之和,但是每次只能修改乙個元素的值。概述圖如下 以陣列c代指樹狀陣列,以陣列a代指原陣列 可看出 c1 a1 c2 a1 a2 c3 a3 c4 a1 a2 a3 a4 c5 a5 c6 a5 a6 c7...
那些年我看到過的牛逼設計
redux 只有action reducer和store。看起來就是flux的變種 vuex同樣是單中心store 單線資料流 事件驅動。特點在於把業務邏輯也分了層 actions和mutations,action是業務邏輯,mutation是資料邏輯。沒見過大專案,不知道這個分層好處在哪,但是 似...
那些年,我的Git Cheat Sheet
1.版本穿梭 head指向的版本就是當前版本。git允許我們在版本的歷史之間穿梭,使用命令git reset hard commit id。穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本。要重返未來,用git reflog檢視命令歷史,以便確定要回到未來的哪個版本。2.檢視某一行...