2016-08-30 1 views
0
My table like 
    --------------- 
     trtm  t_date   id_no certno1 certno2 certno3 certno4 certno5 certno6 certno7 certno8 certno9 certno10 
     TM  15/02/2002  A12  2158 
     TM  15/02/2010  A13  8181  8182  8183  8184  8185  8186  8187  8188  8189  8190 
     TM  15/02/2010  A14  19138 
     ------------------- 

Мне нужно принять подсчет id_no и certno от 1 до 10Как получить счет многократного столбца с помощью SQL

my query is 
    ---------- 
    select count(id_no) as total_id,count(CONCAT(certno1, certno2, certno3,certno4,certno5,certno6,certno7,certno8,certno9,certno10)) as certificate from table where trtm='TM' 
    ---------- 
    my output is: 
    --------- 
    total_id  certificate 
     3    3 
    ------------------------- 

, но мне нужно количество сертификата, где значения есть 3, но мне нужно, это 12

------------ 
    output needs: 
    ----------- 
    total_id  certificate 
     3    12 
    ------------- 

я получаю только подсчет в обоих total_id и certificate.so, пожалуйста, помогите мне, если кто-нибудь знает.

+0

Смотрите нормализацию – Strawberry

ответ

2

Если предположить, что «пустые» поля certX являются обнуляет, вам нужно что-то вроде этого:

SELECT (cert1 is not null) + (cert2 is not null) + ... (cert10 is not null) 

Каждый тест is not null будет возвращать логическое значение истина/ложь, которая будет приведение к целым числам от MySQL, и преобразован в базовую операцию добавления 1+1+0+1+.....

+0

Спасибо Marc B –

1

Граф отдельно, а затем SUM это:

SELECT 
    count(id_no) as total_id, 
    (count(certno1) + 
     count(certno2) + 
     count(certno3) + 
     count(certno4) + 
     count(certno5) + 
     count(certno6) + 
     count(certno7) + 
     count(certno8) + 
     count(certno9) + 
     count(certno10)) as certificate 
FROM table 
WHERE trtm='TM'; 
+1

, как я знаю, 'sum' принимает один argument..you проходит в нескольких аргументах здесь .. использовать' + ' вместо этого добавьте счетчики. –

+0

Спасибо Shaharyar –

+0

@ sukumarK.G Примите ответ, если он помог вам решить проблему. – Shaharyar

Смежные вопросы