DELPHI自帶了二種報表控件,RV和QR,RV簡單不是東西,對中文不支持,出亂碼。不出碼就是漢字不能整齊排列。QR只適合于做純表格,像履歷表、干部登記表之類的表格根本不能按照國人的習(xí)慣排列,精確也做的不是很好,醫(yī)院的三測單(又稱體溫表)根本就做不出來。要用DELPHI拿下所有報表只能用CANVAS,入門雖然有些難,但一旦入門就容易了,幾乎所有需要打印的文檔都可以用它進(jìn)行排版打印,如果你有興趣的話,一張圖文混排的報紙也能排出來,只要你有打印設(shè)備。
創(chuàng)新互聯(lián)公司長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為蕭山企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、網(wǎng)站制作,蕭山網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
比如1-2w是A累,2w-2.5w是B類,C類,D類.....,讓這些數(shù)據(jù)隨機(jī)重新排序
-ORDER('RAND()' )
2張表關(guān)聯(lián)排序,用union來做.
SELECT * FROM (SELECT id,ach,'X' AS counter,'A' AS class,date FROM tablename1 as t1 WHERE 1 UNION SELECT id,ach,counter,'B' AS class,date FROM tablename2 as t2 WHERE 1) AS tall order by date asc
建議增加條件,且為索引字段.其次查的數(shù)據(jù)量不能太大,不然臨時表會占據(jù)較多的內(nèi)存空間.寧可犧牲硬盤空間,也不要無謂的犧牲內(nèi)存空間.
從長遠(yuǎn)角度來說,建議整合2個表.
之前一個表本來有數(shù)據(jù)的 后面刪除了記錄 但是添加ID后排序不是重1開始的
如果是自增字段,刪除數(shù)據(jù),是根據(jù)原來的繼續(xù)往后排的
1、可以刪除這個字段,重新建立個自增字段就可以了
2、也可以重新設(shè)置排序起始
alter table table_name AUTO_INCREMENT=n
例如:
alter table papa_group AUTO_INCREMENT=1
MySQL:5.7
SQL語句的寫法:
思路:先進(jìn)行排序,然后再進(jìn)行分組,獲取每組的第一條。
derived_merge指的是一種查詢優(yōu)化技術(shù),作用就是把派生表合并到外部的查詢中,提高數(shù)據(jù)檢索的效率。這個特性在MySQL5.7版本中被引入,可以通過如下SQL語句進(jìn)行查看/開啟/關(guān)閉等操作。
上面雖然聽起來感覺很牛逼的樣子,但是實際情況是,這個新特性,不怎么受歡迎,容易引起錯誤。
假設(shè)我們現(xiàn)在把sql中的 distinct(a.id) tid ,去掉,會發(fā)現(xiàn)子查詢(或者叫:臨時表)中的order by a.id desc失效了。
為什么會這樣呢?
原理分析:
我們這里使用了臨時表排序,繼而對其結(jié)果進(jìn)行分組,結(jié)果顯示失敗,加了distinct(a.id) tid,后結(jié)果正確,原因是因為臨時表(派生表derived table)中使用order by且使其生效,必須滿足三個條件:
一旦外部表使用了group by, 那么臨時表(派生表 derived table)將不會執(zhí)行filesort操作(即 order by 會被忽略 )。之后我使用了limit可以使其生效,原因是因為要使派生表order by生效, 派生表可以通過使用group by、limit、having、distinct等等使其生效 (方法有好多,詳情可看文檔 )
原文鏈接: