簡體   English   中英

如何在與現有字段(表的另一個字段)有一些偏移量(表的字段)的視圖中創建新字段?

[英]How to create new field in view with some offset (field of table) from existing field (another field of table)?

我有Contracts表:

CREATE TABLE `Contracts` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `supplier_id` INT(11) NOT NULL,
    `shop_id` INT(11) NOT NULL,
    `conclusionDate` DATE NOT NULL,
    `period` INT(11) NOT NULL,
    PRIMARY KEY (`id`),
    CONSTRAINT `FK_Contracts_Shop` FOREIGN KEY (`shop_id`) REFERENCES `shop` (`id`),
    CONSTRAINT `FK_Contracts_Suppliers` FOREIGN KEY (`supplier_id`) REFERENCES `suppliers` (`id`)
)

我想創建這樣的東西:

SELECT 
    c.id, 
    s.name as supplierName,
    c.conclusionDate, 
    c.conclusionDate+year(c.period) as cancelDate, 
    c.period
FROM
    Contracts as c
INNER JOIN
    Suppliers as s
ON 
    s.id = c.supplier_id 

這是我目前的觀點代碼。 結果,我想要這樣的行,其中取消日期是從結論日期( conclusionDate日期字段-日期類型)偏移了幾年( period字段-int類型)的日期。

昨天,我看到了這樣的示例,但現在找不到了:(請幫助我。

預期成績:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ id + supplierName + conclusionDate + cancelDate + period +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1  + bob1         + 2014-05-05     + 2015-05-05 + 1      +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2  + bob2         + 2014-01-01     + 2018-05-05 + 4      +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3  + bob3         + 2012-08-03     + 2017-08-03 + 5      +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

通過僅將interval與您的結論日期一起添加到周期列來進行嘗試

c.conclusionDate + interval c.period year as cancelDate

演示

這應該工作。

ADDDATE(c.conclusionDate, INTERVAL c.period YEAR) as cancelDate, 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM