select symbol form dividends where symbol = 'AMTD'; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'dividends where symbol = 'AMTD'' at line 1
时间: 2023-07-08 11:53:20 浏览: 152
这个 SQL 语句有语法错误。正确的语句应该是:
```
SELECT symbol FROM dividends WHERE symbol = 'AMTD';
```
这个语句的意思是从名为 "dividends" 的表中选择 "symbol" 列,并且只返回 "symbol" 值为 'AMTD' 的行。在这个语句中,"FROM" 关键字应该在 "dividends" 关键字之后,而不是之前。
请注意,如果在 "dividends" 表中没有 "symbol" 值为 'AMTD' 的行,则该查询将返回一个空结果集。
相关问题
select s.ymd,s.symbol,s.price_close from stocks s LEFT SEMI JOIN dividends d ON s.ymd=d.ymd and s.symbol=d.symbol where s.symbol='IBM' and year(ymd)>=2000; 用mysql语言改写
以下是 MySQL 语言的改写:
```
SELECT s.ymd, s.symbol, s.price_close
FROM stocks s
WHERE s.symbol = 'IBM'
AND YEAR(s.ymd) >= 2000
AND EXISTS (
SELECT 1
FROM dividends d
WHERE s.ymd = d.ymd
AND s.symbol = d.symbol
);
```
使用 `EXISTS` 子查询来模拟 `LEFT SEMI JOIN`,只返回左表中存在匹配项的记录。同时在主查询中使用 `WHERE` 子句过滤掉不符合条件的记录。
Look at the Account class Account.java and write a main method in a different class to briefly experiment with some instances of the Account class. o Using the Account class as a base class, write two derived classes called SavingsAccount and CurrentAccount. A SavingsAccount object, in addition to the attributes of an Account object, should have an interest variable and a method which adds interest to the account. A CurrentAccount object, in addition to the attributes of an Account object, should have an overdraft limit variable. Ensure that you have overridden methods of the Account class as necessary in both derived classes. o Now create a Bank class, an object of which contains an array of Account objects. Accounts in the array could be instances of the Account class, the SavingsAccount class, or the CurrentAccount class. Create some test accounts (some of each type). o Write an update method in the bank class. It iterates through each account, updating it in the following ways: Savings accounts get interest added (via the method you already wrote); CurrentAccounts get a letter sent if they are in overdraft. o The Bank class requires methods for opening and closing accounts, and for paying a dividend into each account.
Here is an implementation of the requested classes with a brief main method to test the Account class:
```java
class Account {
private String accountNumber;
private double balance;
public Account(String accountNumber, double balance) {
this.accountNumber = accountNumber;
this.balance = balance;
}
public void deposit(double amount) {
this.balance += amount;
}
public void withdraw(double amount) {
if (this.balance - amount < 0) {
System.out.println("Insufficient funds.");
return;
}
this.balance -= amount;
}
public void printBalance() {
System.out.println("Account balance: " + this.balance);
}
}
class SavingsAccount extends Account {
private double interestRate;
public SavingsAccount(String accountNumber, double balance, double interestRate) {
super(accountNumber, balance);
this.interestRate = interestRate;
}
public void addInterest() {
double interest = this.getBalance() * this.interestRate;
this.deposit(interest);
}
}
class CurrentAccount extends Account {
private double overdraftLimit;
public CurrentAccount(String accountNumber, double balance, double overdraftLimit) {
super(accountNumber, balance);
this.overdraftLimit = overdraftLimit;
}
@Override
public void withdraw(double amount) {
if (this.getBalance() - amount < -overdraftLimit) {
System.out.println("Overdraft limit exceeded.");
return;
}
super.withdraw(amount);
}
}
class Bank {
private Account[] accounts;
public Bank(Account[] accounts) {
this.accounts = accounts;
}
public void update() {
for (Account account : accounts) {
if (account instanceof SavingsAccount) {
((SavingsAccount) account).addInterest();
} else if (account instanceof CurrentAccount) {
if (account.getBalance() < 0) {
System.out.println("Sending overdraft letter to account " + account.getAccountNumber());
}
}
}
}
public void openAccount(Account account) {
Account[] newAccounts = new Account[accounts.length + 1];
System.arraycopy(accounts, 0, newAccounts, 0, accounts.length);
newAccounts[accounts.length] = account;
accounts = newAccounts;
}
public void closeAccount(Account account) {
Account[] newAccounts = new Account[accounts.length - 1];
int j = 0;
for (int i = 0; i < accounts.length; i++) {
if (accounts[i] != account) {
newAccounts[j] = accounts[i];
j++;
}
}
accounts = newAccounts;
}
public void payDividend(double amount) {
for (Account account : accounts) {
account.deposit(amount);
}
}
}
public class Main {
public static void main(String[] args) {
Account account1 = new Account("A001", 1000);
SavingsAccount account2 = new SavingsAccount("A002", 2000, 0.01);
CurrentAccount account3 = new CurrentAccount("A003", 5000, 1000);
account1.deposit(500);
account1.printBalance();
account1.withdraw(2000);
account1.printBalance();
account2.addInterest();
account2.printBalance();
account3.withdraw(2000);
account3.printBalance();
account3.withdraw(5000);
account3.printBalance();
Account[] accounts = {account1, account2, account3};
Bank bank = new Bank(accounts);
bank.update();
bank.openAccount(new Account("A004", 1500));
bank.closeAccount(account1);
bank.payDividend(100);
bank.update();
}
}
```
This code creates three accounts of different types, performs some transactions on them, creates a Bank object with an array of accounts, and calls some methods on the Bank object to update accounts, open and close accounts, and pay dividends.
阅读全文