同じコードで昨日同じような質問を投稿しましたが、私は書き直しました。新しい仕様には完璧でなければなりませんが、何らかの理由で動作しません。SQLクエリ内の複雑な計算
私はOracle 10g Expressを使用しています。
以下のコードは、募集要項の上位10%を作成しています。私は昨年の上位10%をうまくする必要が
CREATE VIEW rich_solicitors AS
select notes.time_spent*rate.rate_amnt+coalesce(special_rate.s_rate_amnt,0)
AS solicitor_made, notes.solicitor_id
FROM notes, rate, solicitor_rate, solicitor, case, contract, special_rate
WHERE notes.solicitor_id = solicitor.solicitor_id
AND solicitor.solicitor_id = solicitor_rate.solicitor_id
AND solicitor_rate.rate_id = rate.rate_id
AND notes.case_id = case.case_id
AND case.contract_id = contract.contract_id
AND contract.contract_id = special_rate.contract_id (+)
ORDER BY -solicitor_made;
SELECT * FROM rich_solicitors
WHERE ROWNUM <= (SELECT COUNT(*)/10 FROM rich_solicitors);
、私はそれを選択するために、START_DATEとEXPIRY_DATEを追加すると、以下の機能追加と同じくらい簡単だろうと思った:
AND contract.start_date >= 01-01-10
AND contract.expiry_date <= 01-01-11
をTO_DATEを使用して日付を挿入しています。私の講師は、なぜこのwouldntの仕事が無駄に働いているのか、私と一緒に楽しい時間を過ごしました。
それはエラーを返すに保管 - ORA-00932:一貫性のないデータ型を:CHARはNUMBER
を得た予想私はまた、日付形式を定義し、今でも任意のアイデアが
CREATE VIEW rich_solicitors1 AS
SELECT notes.time_spent*rate.rate_amnt+coalesce(special_rate.s_rate_amnt,0) AS solicitor_made, notes.solicitor_id, TO_CHAR(contract.start_date, 'DD-MM-YY'), TO_CHAR(contract.expiry_date, 'DD-MM-YY')
FROM notes, rate, solicitor_rate, solicitor, case, contract, special_rate
WHERE notes.solicitor_id = solicitor.solicitor_id
AND solicitor.solicitor_id = solicitor_rate.solicitor_id
AND solicitor_rate.rate_id = rate.rate_id
AND notes.case_id = case.case_id
AND case.contract_id = contract.contract_id
AND contract.contract_id = special_rate.contract_id (+)
AND contract.start_date >= 01-01-10
AND contract.expiry_date <= 01-01-11
ORDER BY -solicitor_made;
同じエラーを返したことを試してみましたか?
多くのおかげで、私は学生であり、約9日前に私はまったくSQLの知識を持っていなかったので、私は非常に感謝しています。
ここで私のコードを正しくフォーマットすることができないようですが、ブラウザエラーですか?何かアドバイス? – Phil
@ Phil:http://stackoverflow.com/editing-helpをご覧ください。 – BoltClock
@ NullUserException:ねえ、戻ってきた!それは長いです:) – BoltClock