ここに私と一緒にいてください。私は以下のクエリを書き出しましたが、DISTINCTはWHERE文で本質的に否定されています。これは、表内の日付の後にタイムスタンプが付いているためです。そのため、行アイテムが置かれた時間に差がある場合は、新しい行が生成されます。SQL DISTINCT/GROUP BYが機能していません
タイムスタンプのために新しい行が生成されないように、日付の後のすべてを完全に無視する最良の方法は何ですか?私が見つけたことから、これはGROUP BYを使ってより良い結果が得られたと思いますが、継ぎ目は常にエラーを生成します(おそらく私は集計関数をどこに置くべきかわからないでしょう)。
ご協力いただければ幸いです。ありがとうございました!
Select DISTINCT
so.num AS Ref
, so.shiptoname AS Recipient_Full_Name
, so.shiptoaddress AS Address_1
, so.shiptocity AS City
, stateconst.name AS State
, so.shiptozip AS Zip
, so.billtoname AS Buyer_Name
, qbclass.name AS Class
, soitem.datescheduledfulfillment AS Fulfillment_Date
From SO
JOIN stateconst
ON so.shiptostateid=stateconst.id
JOIN qbclass
ON so.qbclassid=qbclass.id
JOIN soitem
ON so.id=soitem.soid
WHERE DATESCHEDULEDFULFILLMENT LIKE '2016-05-10%'
出力の「DateScheduledFulfillment」フィールドの時間部分が失われても構わない場合は、これが確実に機能します。 – Sturgus
DATE機能の何が問題になっていますか? – Strawberry
私は理由は分かりませんが、これもエラーを生成します。 WHEREを削除してもデータは一切表示されません。コピーして貼り付けて、正しく、まだエラーがないことを確認してください。これはFirebird上で重要なのでしょうか? – JonBravo