sql - 哪些发票大于 300 美元,在 2008 年 7 月 15 日之前支付,并且是 TermsID 2 或 3
问题描述
我的家庭作业问题离我很远,但我有点困惑代码将如何为 date 和 termsID 2 或 3 付费?
编写返回 VendorID、InvoiceNumber、InvoiceDate、InvoiceTotal、TermsID 和 PaymentDate 的 SELECT 语句,回答以下问题:哪些发票大于 300 美元,在 2008 年 7 月 15 日之前支付,并且是 TermsID 2 或 3?(将返回 18 条记录)
选择 VendorID、invoiceNumber、InvoiceDate、InvoiceTotal、TermsID、PaymentDate From invoices Where invoices > 300 和
解决方案
这里有一些提示:
如果您的付费日期列是(应该是)日期,您可以使用<
运算符 jsut 构造一个谓词来查找日期之前的内容,就像使用数字一样。以后的日期更大:
--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')
推荐阅读
- python - 试图获得特定的温度范围,同时保持其他两个变量的范围
- vue.js - 子级使用与父级不同的布局
- reflection - 获取 java.lang.ClassCastException: [Ljava.lang.Integer; 不能转换为 [I
- html - text-stroke-width 和 text-stroke-color 在 gmail 模板中不起作用
- python - 从视图中的父模型获取 Django 中关联模型的更好方法
- java - Java中WeakCache的用例是什么?
- arrays - openlayers 6 如何从数组中获取文本标签的值
- python - 将多个子字符串匹配模式提取到列中
- reactjs - 如何在 for in 循环中使用 typescript 类型
- python - Selenium 在迭代期间跳过同一类的元素