2

データベースで問題が発生しています。

そして、映画「Harry_Potter」のトランザクション数をクエリしてみましたか?

だから私はSQLクエリを使用しました:

SELECT
COUNT(td.movie) AS number_of_occurrence,
td.transaction_number
FROM
TransactionDetails td,
MovieDetails md
WHERE
md.movie = Harry_Potter

しかし、Harry_Potter にパラメーター値を入力するよう求められるのはなぜですか? 関連する SQL ステートメントは次のとおりです。

CREATE TABLE TransactionDetails 
(
transaction_number INTEGER PRIMARY KEY,
movie VARCHAR(30) NOT NULL,
date_of_transaction DATE NOT NULL,
member_number INTEGER NOT NULL
)

CREATE TABLE MovieDetails
(
movie VARCHAR(30) PRIMARY KEY,
movie_type VARCHAR(3) NOT NULL,
movie_genre VARCHAR(10) NOT NULL
)

ALTER TABLE TransactionDetails
ADD CONSTRAINT member_number_fk FOREIGN KEY (member_number) REFERENCES    LimelightMemberDetails(member_number);

ALTER TABLE TransactionDetails
ADD CONSTRAINT transaction_number_drink_fk FOREIGN KEY (transaction_number) REFERENCES DrinkTransactionDetails(transaction_number);

ALTER TABLE TransactionDetails
ADD CONSTRAINT transaction_number_food_fk FOREIGN KEY (transaction_number) REFERENCES FoodTransactionDetails(transaction_number);

ALTER TABLE TransactionDetails
ADD CONSTRAINT movie_fk FOREIGN KEY (movie) REFERENCES MovieDetails (movie);

ご協力ありがとうございました!データベースの設計に問題がある場合は、お知らせください。ありがとう!

4

2 に答える 2

3

クエリを次のようなものに変更します

SELECT 
COUNT(td.movie) AS number_of_occurrence, 
td.transaction_number 
FROM 
TransactionDetails td, 
MovieDetails md 
WHERE 
md.movie = "Harry_Potter"

映画は文字列であるため、探している値を引用符で囲む必要があります。

私が間違っていなければ、MSAccessは"を取り、SQLSERVERは'を取ります

于 2012-10-17T04:59:31.923 に答える
1

これを試して

md.movie = "Harry_Potter"

比較している文字列の周りの引用符が欠落しているだけだと思います。

于 2012-10-17T04:59:45.683 に答える