2014-02-13 77 views
0

我想用不同的列值執行相同的SQL查詢,即:我有一個表像下面:如何重複用於不同的列相同的SQL查詢值

+--------+-------+---------------+ 
| ENAME | EID | BASIC Salary | 
+--------+-------+---------------+ 
| AAA | 111 | 12345   | 
| BBB | 222 | 45678   | 
| CCC | 333 | 8965   | 
| DDD | 444 | 3654   | 
| .............................. | 
| ZZZ | 555 | 12345   | 
+--------+-------+---------------+ 

從上面的表格,我想爲員工提供EIDSalary。請建議我如何在不執行多次的情況下查詢以獲取以上數據。

+2

可以請你告訴我你想要什麼?輸出你需要多解釋一下 –

+0

你能寫出你的預期輸出嗎? –

+0

@DeepakSharma,謝謝你的迴應。 –

回答

1

嘗試此查詢

SELECT ENAME, EID, Salary FROM <TABLENAME> WHERE ENAME IN ('AAA','DDD','ZZZ'); 

SELECT ENAME, EID, Salary FROM <TABLENAME1> WHERE ENAME IN (SELECT ENAME FROM <TABLENAME2> WHERE <CRITERIA>); 
+0

,上面是獲取包含10個條目的表的數據的基本語法。比如明智的,如果我的表有1000個條目,並且我想一次爲大約200名員工獲取數據。所以有可能編寫一個查詢來獲取200個員工數據。 –

+0

如果您的200名員工保存在另一個表中,您可以編寫一個像SELECT ENAME,EID,Salary FROM WHERE ENAME IN(SELECT ENAME FROM )的子查詢,或者如果它符合某些條件,則可以使用該條件編寫WHERE子句。讓我知道你的要求。 – Uttam

+0

是有用的信息..有可能從Excel或記事本文件輸入一個輸入。 –

0

基本是了Syntex:

select columnname1, sum(columnname2) from tablename where condition.. group by columnname1 

在這裏,你將編寫一個查詢的樣子:

select EID, sum(salary) from table where EID in(101,102,103,104,...) 
group by EID 

這裏,如果你想要一個200或300行的數據,那麼在sql中使用skip和limit。您將編寫一個查詢的樣子:

select EID, sum(salary) from table 
    group by EID limit 10 offset 0 

其中限制是沒有記錄的,並偏移一個跳過記錄

+0

,上面是獲取包含10個條目的表的數據的基本語法。比如明智的,如果我的表有1000個條目,並且我想一次爲大約200名員工獲取數據。所以有可能寫一個查詢獲取200僱員數據在一個時間 –

+0

它可能通過where子句或限制和跳過方法,我會更新答案... – jainvikram444

+0

是的,它只會在我連續選擇200條記錄。如果我想選擇隨機記錄,它是否有效..? –

相關問題