2009-10-01 3 views
1
rechargedate | mobile  | amount 
-------------+----------------+-------- 
01-07-2009 | 0103001199 | 50.00 
01-07-2009 | 0103001199 | 50.00 
20-07-2009 | 0103001199 | 50.00 

Выше часть моих данных, теперь я хочу сделать перезаряжается одного и того же числа в тот же день стал один ряд:Как это сделать?

rechargedate | mobile  | Amount 
--------------+---------------+-------- 
01-07-2009 | 0103001199 | 50.00 
20-07-2009 | 0103001199 | 20.00 

Как я могу это сделать (конвертировать актерский?)?

+0

Если строка упала или вам нужна сумма? –

+0

Не могли бы вы подробнее рассказать о своем вопросе и сделать его более читабельным? – KLE

+0

ВЫБЕРИТЕ a.rechargedate, a.mobileno, sum (a.Amount), b.reg_dealer, (c.agn_code + '-' + c.agn_master_code + '-' + c.agn_state + '-' + c.agn_dealer_code) , b.reg_activationdate от перезарядки a, ежедневная регистрация b, агенты c, где подстрока (b.reg_dealer, 5, 6) = c.agn_dealer_code и b.reg_id = a.mobileno и месяц (a.rechargedate) = 7 группа. перезарядка , a.mobileno, b.reg_dealer, (c.agn_code + '-' + c.agn_master_code + '-' + c.agn_state + '-' + c.agn_dealer_code), b.reg_activationdate order by a.mobileno – kokok13

ответ

3
SELECT DISTINCT columns FROM table GROUP BY columns 

выглядит, как вы будете нуждаться в GROUP BY, а также

0
SELECT rechargedate, mobile, SUM(amount) FROM tablename 
GROUP BY rechargedate, mobile 
0
SELECT a.rechargedate, a.mobileno,sum(a.Amount),b.reg_dealer, 
(c.agn_code + '-' + c.agn_master_code + '-' + c.agn_state + '-' + c.agn_dealer_code), b.reg_activationdate 
from recharge a, dailyregistration b, agents c 
where 
substring(b.reg_dealer, 5, 6) = c.agn_dealer_code 
and b.reg_id = a.mobileno 
and month(a.rechargedate) = 7 
group by a.rechargedate, a.mobileno, b.reg_dealer, (c.agn_code + '-' + c.agn_master_code + '-' + c.agn_state + '-' + c.agn_dealer_code), b.reg_activationdate 
order by a.mobileno 
+0

Это один трудный для чтения запрос. Я рекомендую вместо этого использовать ANSI-соединения http://en.wikipedia.org/wiki/Join_%28SQL%29 и что вы исследуете, можете ли вы нормализовать свою базу данных, чтобы совпадение подстроки не было необходимым. Я также рекомендую вам прочитать http://stackoverflow.com/faq, чтобы узнать, когда отвечать, комментировать, голосовать вверх/вниз и так далее. –

1

Если две строки идентичны, вы можете использовать ключевое слово DISTINCT сразу после SELECT:

select DISTINCT rechargedate, mobile, amount FROM yourTable 

Это не сработает, если у вас есть такие строки, как:

rechargedate | mobile  | amount 
-------------+----------------+-------- 
01-07-2009 | 0103001199 | 150.00 
01-07-2009 | 0103001199 | 50.00 
20-07-2009 | 0103001199 | 50.00 

В этом случае вам потребуется GROUP BY перезарядка. Это приведет только к одной строке для каждой другой перезарядки, которая может не всегда быть необходимой:

select rechargedate, mobile, amount FROM yourTable GROUP BY rechargedate 
+0

Думаю, вы имеете в виду «Группу по перезарядке, мобильную». Кроме того, вы, вероятно, захотите SUM (количество) –