0

私は顧客データベースを持っており、1日に複数回使用されたバーコードを見つけてバーコードだけを出力するクエリを実行しようとしています...たとえば、バーコード#1が特定の日に3回スキャンされた場合データベース内の3つのトランザクションがすべてバーコード#1で表示されます...これが私が現在日付で検索している基本的なクエリです...

Select *
FROM            Customers
WHERE        (dtCreated BETWEEN CONVERT(DATETIME, '2012-12-10 00:00:00', 102) AND CONVERT(DATETIME, '2012-12-11 00:00:00', 102)) AND (sBarcode = '1')

バーコード1を検索する代わりに、12/10/12に複数回スキャンされたバーコード(sBarcode)を知りたいのですが。

4

4 に答える 4

1

最後のANDステートメントを削除するだけですか?

編集:わかりました。バーコードでグループ化し、毎日集計する必要があります。それで全部です。何かのようなもの:

SELECT *
WHERE (dtCreated BETWEEN CONVERT(DATETIME, '2012-12-10 00:00:00', 102) AND CONVERT(DATETIME, '2012-12-11 00:00:00', 102))
GROUP BY dtID, dtCreated
HAVING COUNT(*) > 1
于 2012-12-11T13:25:17.390 に答える
1

バーコードを選択し、table_nameからcntとしてcount(barcode)を選択します。ここで、date =desired_dateはバーコードごとにグループ化されますHAVING(COUNT(*)> 1)

于 2012-12-11T13:29:29.147 に答える
1
Select Count(barcode) counter
FROM  Customers
WHERE  (dtCreated BETWEEN CONVERT(DATETIME, '2012-12-10 00:00:00', 102) AND CONVERT(DATETIME, '2012-12-11 00:00:00', 102)) AND (sBarcode = '1')
group by barcode
having (COUNT(barcode) >= 1) 
于 2012-12-11T13:34:19.563 に答える
0

私はこれを行います:

select sbarcode
from customers
where cast(dtCreated as date) = '2012-12-10'
group by sbarcode
having count(*) > 1

カウントが必要な場合は, count(*)select行に含めます。

于 2012-12-11T16:27:04.020 に答える