2013-07-03 3 views
0

두 개의 테이블이 있습니다. barcodes제품 당 하루 얼마나 많은 바코드를 계산합니까?

barcodesbarcodes_entered :

id | product | barcode 
------------------------- 
1 | product1 | 12345 
2 | product2 | 23456 
3 | product3 | 34567 

barcodes_entered :

barcode_id | timestamp 
-------------------------------- 
2   | 2013-07-01 00:00:00 
2   | 2013-07-01 00:00:00 
3   | 2013-07-01 00:00:00 
2   | 2013-07-02 00:00:00 
1   | 2013-07-02 00:00:00 

내가 각 제품의 하루를 입력 얼마나 많은 바코드를 알아 내기 위해 노력하고있어.

그래서에서 내 예상 결과는 위의 것 :

product | count | date 
------------------------------ 
product1 | 0  | 2013-07-01 
product2 | 2  | 2013-07-01 
product3 | 1  | 2013-07-01 
product1 | 1  | 2013-07-02 
product2 | 1  | 2013-07-02 
product3 | 0  | 2013-07-02 

나는 순간에 쓰기를 시도하고있어 쿼리는 다음과 같습니다

SELECT product, COUNT(barcode_id) AS count, DATE( `timestamp`) AS date 
FROM barcodes_entered 
LEFT JOIN barcodes ON barcodes.id = barcodes_entered.barcode_id 
GROUP BY DATE( `timestamp`) ASC 

불행하게도, 이것은 다음과 같은 결과를 제공 : 그래서

product | count | date 
------------------------------ 
product1 | 3  | 2013-07-01 
product2 | 2  | 2013-07-02 

기술적으로 내가생각 내가 묻는 바는 입니다. 얼마나 많은 바코드가 해당 제품에 입력되었는지를 계산하면서 날짜별로 그룹화 한 다음 다시 제품별로 그룹화합니까?

답변

1

의 선택을 JOIN를 사용해야하고, barcodes_entered 조인 생각합니다. 테스트되지 않았지만 작동해야합니다.

SELECT product, COUNT(barcode_id) AS count, DATE( `timestamp`) AS date 
FROM barcodes 
LEFT JOIN barcodes_entered ON barcodes.id = barcodes_entered.barcode_id 
GROUP BY DATE( `timestamp`) ASC, product 
+0

거의 다시 - 제로 바코드가있는 제품의 경우 날짜가 NULL로 표시됩니다. – ahren

+0

어차피 할 것입니다. 그래프. 건배 – ahren

2

그룹 by dateproduct.

GROUP BY DATE( `timestamp`) ASC, product 

업데이트 결과에 zero를 얻기 위해

, 난 당신이 대신 바코드에서 대신 LEFT JOIN

+0

거의 - 그것은 – ahren

+0

@ahren (해당 날짜에 입력 한 해당 제품 유형에는 바코드가 없을 때를 위해) 어떤 제로 날 다시 포기하지 않습니다와'join' 대신 '왼쪽 join' 시도하시기 바랍니다 – sarwar026

+0

방금 ​​시도했지만 여전히 0이 아닙니다. 이것은 그래프를 출력하기위한 것입니다. - 건배 – ahren

관련 문제