2014-09-08 2 views
1

아래 표에는 각각 invoiceID가있는 지불 트랜잭션이 포함되어 있습니다. 내가 그들과 관련된 둘 이상의 트랜잭션을 가지고있는 invoiceID의 목록을 쿼리를 작성하려고합니다. 내가 'BY GROUP'의 조합을 사용하고 'HAVING'하지만 난 그들을 사용하는 방법을 이해하지 않는해야 읽은에서둘 이상의 트랜잭션이 연결된 쿼리 송장

mysql> describe tblaccounts; 
+-------------+---------------+------+-----+---------+----------------+ 
| Field  | Type   | Null | Key | Default | Extra   | 
+-------------+---------------+------+-----+---------+----------------+ 
| id   | int(10)  | NO | PRI | NULL | auto_increment | 
| userid  | int(10)  | NO | MUL | NULL |    | 
| date  | datetime  | YES | MUL | NULL |    | 
| description | text   | NO |  | NULL |    | 
| amount  | decimal(10,2) | NO |  | 0.00 |    | 
| transid  | text   | NO | MUL | NULL |    | 
| invoiceid | int(10)  | NO | MUL | 0  |    | 
+-------------+---------------+------+-----+---------+----------------+ 

.

답변

1
SELECT invoiceid 
FROM tblaccounts 
GROUP BY invoiceid HAVING COUNT(*)>1 

이렇게하면 sth를 사용할 수 있습니다. 인보이스 ID별로 첫 번째 그룹. 이제 우리는 동일한 invoiceid를 가진 그룹을 갖게되었습니다. 그런 다음 HAVING 키워드로 하나 이상의 그룹을 선택합니다. 자세한 내용은 여기를 참조하십시오 : http://www.w3schools.com/sql/sql_having.asp 및 여기 : http://www.w3schools.com/sql/sql_groupby.asp

0
SELECT invoiceid FROM tblaccounts GROUP BY invoiceid HAVING COUNT(*) > 1