看板 java 關於我們 聯絡資訊
※ 引述《chonmanaeyo (老鳳仙)》之銘言: : 我嘗試將原本 SQL Server 可執行的語法 : 改以 Hibernate 撰寫,但始終無法正確執行 : 範例如下: : select convert(varchar(10), A.time, 120), count(A.price) : from TableX as A, TableX as B : where A.id = B.id : and A.time between '2011-12-01 00:00:00' and '2011-12-23 23:59:59' : group by convert(varchar(10), A.time, 120) : 主要是那個 convert 不知用什麼方式組合較好 : 希望有人能給予一點方向 : 謝謝 首先我不清楚 SQL Server 的 convert 是搞什麼用的,我 猜是轉成 varchar 之類? 我想你這段應該是想寫 HQL? 首先,你要用 Hibernate,就請你把你的 model 用比較 OO 的角度去看。它們再不是一堆 table, 然後做join,而是在 model 裡已經定義好 model 之間的關係。 另外也沒必要再搞什麼 date -> varchar 的轉換了吧,直接 取回 model或 model 的 attribute。 你的 self join 也看不出來有什麼用。 要是你真的要寫成這樣,model 本身關係混亂,或者本身 DB Schema 你沒法改得比較合理,那麼這個 query 倒不如 直接用 SQL寫算了,反正 Hibernate Session 也可以餵 SQL, 沒必要硬寫 HQL 可是寫出來難看難懂得要命 Alien -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 183.179.61.91
qrtt1:他是想要以天為單位選出 count。 12/24 10:15
chonmanaeyo:樓上正解,此舉是希望將多項同一天但時間不同的筆數 12/24 10:45
chonmanaeyo:能綁成一筆資料 來作加總 12/24 10:48
qrtt1:我支持直接寫 natvie sql。 12/24 11:06
jej:推樓上.. 不然就是也不要count了.. select下來後用map自己作.. 12/24 11:18
chonmanaeyo:感謝各位的幫忙,我會試試看 12/25 19:21