【问题标题】:SQL: insert data into free column acording to date differenceSQL:根据日期差异将数据插入空闲列
【发布时间】:2015-11-30 10:38:33
【问题描述】:

我有一个问题。我是 SQL 的真正初学者。我从事 BI 项目,我需要创建数据仓库。

我目前的问题是这样的:

我有一个表,我将来自外部 Microsoft Access 的数据推送到其中。该数据包含两个日期(计费信息),如果付款延迟,我需要在此表中生成一个信息(表中有名为delay 的免费列,我需要在其中生成YES/NO根据付款日期是否晚于“需要”付款日期)

所以我想到了这样的事情:

INSERT INTO TABLE billing,
VALUES (YES)
IF DATE1 > DATE2,
ELSE VALUE (NO)

...我知道这不是 SQL,但它只是为了理解。

如果有人知道可以帮助我的事情,我将不胜感激。

谢谢

【问题讨论】:

标签: sql if-statement sql-insert etl business-intelligence


【解决方案1】:
Insert into table(col1,col2,col3) Select   
Case When Date 1> Date2 Then 'No' Else 'Yes' End as Col1,  
Case When Date 1> Date2 Then 'No' Else 'Yes' End as Col1,col3  from table 2


update tablename set Col8 = Case When Col3> Col4 Then 'No' Else 'Yes' End 

如果 col3> col4 将更新为“否”,则上述更新语句将适用于表中的所有行,否则它将更新为“是”。希望这很清楚

【讨论】:

  • 虽然这可能会回答 OP 的问题,但如果您解释它如何以及为什么解决问题并且不介绍其他问题,这个答案会更有用。
  • 问题是,如果 col1 和 col2 中已经有数据并且我只想将数据插入 Col3(计费)中,我可以使用它......如果是这样,那么 End as Col1 表示我所在的列将插入数据(是/否)?
  • 您的问题不清楚。如果 col1 和 col2 中已有数据,则需要使用更新语句
  • Yes.. Col1 和 Col2 具有为 col1 和 col2 插入的值。你甚至可以离开 col1
  • 好吧,也许我不够清楚...在第 1 列第 2 列等中,已经有我不想更改的数据..并且有第 8 列(命名计费)我想插入根据日期差异提到的数据(是/否)......我想为表中的每个条目(大约5k行)做它......我希望现在更清楚......老实说我不知道​​是否我应该使用插入或更新...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-19
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多