0

データベース「運賃」にテーブルがあります。vehicle_number、date_from、date_to、およびfareの列があります。date_from から date_to までで定義された日付範囲と、その特定の日付範囲での運賃には、いくつかの車両番号の完全性があります。

vehicle_number  date_from    date_to       fare 
ABC123         2013-04-19   2013-04-24     $50
ABC123         2013-04-25   2013-04-29     $100
ABC123         2013-04-25   2013-04-29     $120

ABC124         2013-04-19   2013-04-21     $20

DATE 2013-04-20 fare as -->NULL テーブルを次のように表示できるように、クエリを実行したい

vehicle_number  date_from       date_to       fare 
ABC123         2013-04-19   2013-04-19     $50
ABC123         2013-04-21   2013-04-24     $50
ABC123         2013-04-25   2013-04-29     $100
ABC123         2013-04-25   2013-04-29     $120

ABC124         2013-04-19   2013-04-21     $20

INSERT クエリを試し、その日付に NULL を挿入しようとしましたが、NULL が挿入されましたが、必要な出力が得られませんでした。また、DELETE は DB から行全体を削除しています。

日付と運賃を最初に挿入するためのクエリ:

INSERT INTO fare (`vehicle_number`,`date_from`, `date_to`,`fares`) VALUES ('$vehicle_number','$from','$to','$vehicle_fares')

このクエリを試してNULLにしました

INSERT INTO fare (`vehicle_number`,`date_from`, `date_to`,`fares`) VALUES ('ABC123','2013-04-20','2013-04-20',NULL)

この後、以下の出力が表示されます。

vehicle_number  date_from    date_to       fare 
ABC123         2013-04-19   2013-04-24     $50
ABC123         2013-04-20   2013-04-20     
ABC123         2013-04-25   2013-04-29     $100
ABC123         2013-04-25   2013-04-29     $120

ABC124         2013-04-19   2013-04-21     $20
4

1 に答える 1

0

4-20 ではない日付だけを表示しようとしているようです。これは、新しいレコードを挿入するための適切なコンテキストではありません。代わりに、クエリを変更して、返される結果からこの日付を単純に除外する必要があります。

SELECT * FROM fare WHERE vehicle_number = ABC123 AND date_from <> 2013-04-20 AND date_to <> 2013-04-20
于 2013-04-19T16:34:41.403 に答える