使用日期时间计算创建视图?如何?

时间:2014-06-23 22:00:51

标签: sql sql-server database tsql

我有桌子收据和租金。该数据库是出租汽车公司。在收据表中我有总费用和收据表中的租赁日期和退货日期。我想从这两个表中创建一个视图,并在此视图中创建一个功能,它将以小时为单位计算和减去2个日期(返回租赁),将其乘以一个数字并将其放入总成本列中。像这样:如果小时> 24,那么总费用= 24 * 8否则24 * 10 - 例如。结果应该在总成本列中。我是初学者,所以我真的不知道该怎么做或者是否可以做到。这是一个视图的代码(有更多列和德语)重要的是Rechnungsbetrag =总成本,Ausleihdatum =租赁日期,Ruckgabedatum =返回日期。感谢您的帮助。

CREATE VIEW vRechnung
AS
  SELECT  
    tbl_Rechnung.RechnungsNr,
    tbl_Rechnung.Kunden_ID,
    tbl_mieten.Ausleihdatum,
    tbl_mieten.Rückgabedatum,
    tbl_Rechnung.Rechnungsbetrag ,
    tbl_Sachbearbeiter.Nachname AS Sachbearbeiter
FROM tbl_Rechnung
join tbl_mieten ON tbl_Rechnung.Kunden_ID=tbl_mieten.Kunden_ID
join tbl_Sachbearbeiter ON tbl_Rechnung.SVNr=tbl_Sachbearbeiter.SVNr

1 个答案:

答案 0 :(得分:1)

硬编码的方式是:

CREATE VIEW vRechnung
AS
  SELECT  
    tbl_Rechnung.RechnungsNr,
    tbl_Rechnung.Kunden_ID,
    tbl_mieten.Ausleihdatum,
    tbl_mieten.Rückgabedatum,
    tbl_Rechnung.Rechnungsbetrag ,
    tbl._mieten.Rückgabedatum,
    tbl_Sachbearbeiter.Nachname AS Sachbearbeiter,  
    DATEDIFF(hour, rental, return) * 
        CASE WHEN DATEDIFF(hour, rental, return) > 24
           then 8
           ELSE 10
        END AS TotalCost
FROM tbl_Rechnung
join tbl_mieten ON tbl_Rechnung.Kunden_ID=tbl_mieten.Kunden_ID
join tbl_Sachbearbeiter ON tbl_Rechnung.SVNr=tbl_Sachbearbeiter.SVNr

(我不懂德语,所以我添加了你在查询中提到的英文单词)

请注意,我添加了换行符以使您的SQL MUCH更易于阅读。

更好的方式是拥有一个表格,指定给定时间范围的费率并加入其中,但这是另一个问题:)

相关问题