计算空值和组结果

时间:2015-08-29 09:02:42

标签: sql jpa jpql

问题

我想计算空值并将结果分组,但它给了我错误的值

String jpql = "select c.commande.user.login, (select count(*) 
from Designation c 
WHERE c.commande.commandeTms IS NOT EMPTY 
AND c.etatComde = 0) AS count1, 
    (select count(*) 
    from Designation c WHERE c.commande.commandeTms IS EMPTY ) AS count2  
    from Designation c GROUP BY c.commande.user.login";

我得到了这些结果:

user1  user2
   10    10
    0     0

但我应该有这些:

user1  user2
    4     2
    3     1

示例数据:

表Commande

idComdeComm, commandeTms_idComndeTms, user_idUser

      6,                 17                  2
      8,                 NULL                2
     10,                 28                  2
     12,                 NULL                2
     14,                 NULL                2
     16,                 NULL                2
     21,                 NULL               19
     23,                 NULL               19
     25,                 26                 19
     31                  NULL               19

表格指定

idDesignation, designation, etatComde, commande_idComdeComm
5,             'fef',         0,            6
7,             'ferf',        0,            8
9,             'hrhrh',       0,           10
11,            'ujujuju',     0,           12
13,            'kikolol',     0,           14
15,            'ololo',       0,           16
20,            'gdfgfd',      0,           21
22,            'gdfgfdd',     0,           23
24,            'nhfn',        0,           25
30,            'momo',        0,           31

表用户

idUser, login,      password, profil
1,      'moez',     '***',    'admin'
2,      'user1',    '**',     'comm'
3,      'log',      '**',      'log'
4,      'mo',       '*',      'comm'
19,     'user2',    '*',      'comm'

表Commande TMS

idComndeTms, etatOperationNumCMD, numeroComndeTms
      17,        '',                 3131
      26,        '',                 2525
      28,        '',                 3333

0 个答案:

没有答案