テーブル価格期間tblPricePeriod
私はAmount
を特定のアパートメントの2つの日付の間に請求することがあります。価格期間テーブルから金額を取得
ApartmentId
の価格期間には、StartDate
とEndDate
のカラムもあります。以下は
は、私のテーブルの構造である:
今私は予約の日のために合計金額を請求する計算します。誰かが4febから2月7日に留まる場合例えば
は、その後、彼は以下のスキームに従って支払う必要があります。私は、パラメータとしてstartdate
とenddate
とapartmentid
を持って
4- 10
5- 10
6- 10
7 - nothing as this is checkout date
-----------------------------------------------------
totamt--- 30$
、私は、MSのアクセスDBを使用しています。
私はこれをトラバースするためにC#コードをフォローコードで使用していますが、成功していません。
すべての日付の金額を1つずつ取得し、1つのグローバル変数に追加しています。次のように
コードは次のとおりです。ここで
decimal amount = 0;
// loop to traverse all days between start date and end date
for (DateTime d = Convert.ToDateTime(StartDate); d < Convert.ToDateTime(EndDate); d = d.AddDays(1))
{
string priceCalc = "select Amount from tblPricePeriod where ApartmentId=" + ApartmenId + " and cdate(StartDate) <='" + d.ToShortDateString() + "' and cdate(EndDate) >= '" + d.ToShortDateString() + "'";
DataSet dsPriceCalc = SqlHelper.ExecuteDataset(Connection.ConnectionString, CommandType.Text, priceCalc);
if (dsPriceCalc.Tables[0].Rows.Count > 0)
{
amount = amount + Convert.ToDecimal(dsPriceCalc.Tables[0].Rows[0]["Amount"]);
}
}
問題は何か分かりませんか?間違いや合計が間違っていますか?また、顧客がチェックアウト日に支払うことを望まない場合は、チェックアウト日に '> = 'の代わりに'> 'を使用する必要があります。 – Niklas
間違ったシミュレーションクエリからデータが来ておらず、ゼロのままである – rahularyansharma
これらの 'StartDate'列と 'EndDate'列は、 '日付'型ですか? Accessに日付の区切り文字が必要なの? –