哪些发票大于 $300,已在 2008 年 7 月 15 日之前支付,并且是 TermsID 2 或 3

  • 本文关键字:日之 TermsID 大于 2008 已在 sql sql-server
  • 更新时间 :
  • 英文 :


我从我的家庭作业问题中得到了这个,但我有点困惑代码将如何用于日期和条款 ID 2 或 3 之前的付费?

编写一个 SELECT 语句,该语句返回供应商 ID、发票编号、发票日期、发票总计、条款 ID 和付款日期,以回答以下问题:哪些发票大于 300 美元,在 2008 年 7 月 15 日之前支付,并且是条款 ID 2 或 3?(将返回 18 条记录(

选择供应商 ID、发票编号、发票日期、发票总计、条款 ID、付款日期 从发票 发票> 300 和

以下是一些提示:

如果付款日期列是(应该是(日期,则可以使用<运算符构造一个谓词,该谓词查找日期之前的内容,就像使用数字一样。较晚的日期更大:

--find all people born before 1970 jan 01
SELECT * FROM person WHERE birthdate < '1970-01-01'

将您的日期作为字符串(用'括起来(以 yyyy-MM-dd 格式传递进行比较。db 会将字符串转换为日期并以数字方式运行比较


如果要查找一组术语中的列,请使用 IN 运算符:

SELECT * FROM person WHERE jobrole IN ('manager', 'developer', 'support')
SELECT * FROM creature WHERE numberoflegs IN (2,4,6)

IN 的工作方式如下:

SELECT * FROM creature WHERE numberoflegs =2 OR numberoflegs = 4 OR numberoflegs = 6

始终,在混合 AND 和 OR 时始终包含括号,以便向数据库和阅读您的代码的其他人明确说明要以哪种方式组合的内容

--for this...
SELECT * FROM person WHERE name = 'john' and age = 32 or city = 'paris'
--which of these is it? very different things!
SELECT * FROM person WHERE (name = 'john' and age = 32) or city = 'paris'
SELECT * FROM person WHERE name = 'john' and (age = 32 or city = 'paris')

最新更新