SELECT patron_name, producer.fed_number, tax_number, average_tb_test
FROM producer
INNER JOIN producer_details ON producer.federal_number = producer_details.federal_number
INNER JOIN statement ON producer.patron_number = statement.patron_number
WHERE producer.patron_number = @PatronNo
(SELECT MAX(statement.statement_number), MAX(period_ending) FROM statement)
回答
用途:
SELECT patron_name,
producer.fed_number,
tax_number,
average_tb_test,
(SELECT MAX(s.statement_number) FROM STATEMENT s),
(SELECT MAX(s.period_ending) FROM STATEMENT s),
FROM PRODUCER
JOIN producer_details ON producer.federal_number = producer_details.federal_number
JOIN statement ON producer.patron_number = statement.patron_number
WHERE producer.patron_number = @PatronNo
但你會得到的每一行相同的最大STATEMENT.statement_number
和STATEMENT.period_ending
值。這會給你每patron_number值最大:
SELECT patron_name,
producer.fed_number,
tax_number,
average_tb_test,
x.max_statement_num,
x.max_period
FROM PRODUCER
JOIN producer_details ON producer.federal_number = producer_details.federal_number
JOIN STATEMENT ON producer.patron_number = statement.patron_number
JOIN (SELECT s.patron_number,
MAX(s.statement_number) AS max_statement_num,
MAX(s.period_ending) AS max_period
FROM STATEMENT s
GROUP BY s.patron_number) x ON x.patron_number = producer.patron_number
WHERE producer.patron_number = @PatronNo
謝謝。有用。我只想返回一行,所以,希望這會很好。 – brookmarker 2010-08-18 02:15:07
T-SQL UNION運算符將兩個或多個查詢組合到一個結果集中。
-1:UNION只在列和它們的數據類型在兩個查詢中完全匹配時才起作用。 – 2010-08-18 02:08:48
UNION的查詢必須匹配列數據類型 - 如果它們不匹配,則需要在適當的位置使用NULL進行空間分隔。合理,但不是OP的標準的理想解決方案。 – 2010-08-18 02:09:32
我建議的方法中的任何一個:
SELECT patron_name,
producer.fed_number,
tax_number,
average_tb_test,
MAX(statement.statement_number) as MaxStatementNumber,
MAX(statement.period_ending) as MaxPeriodEnding
FROM PRODUCER
JOIN producer_details ON producer.federal_number = producer_details.federal_number
JOIN statement ON producer.patron_number = statement.patron_number
WHERE producer.patron_number = @PatronNo
GROUP BY patron_name,
producer.fed_number,
tax_number,
average_tb_test
或
DECLARE @MaxStatementNumber INT, @MaxPeriodEnding INT
SELECT @MaxStatementNumber = MAX(statement.statement_number), @MaxPeriodEnding = MAX(period_ending) FROM statement
SELECT patron_name, producer.fed_number, tax_number, average_tb_test, @MaxStatementNumber AS maxStatementNumber, @MaxPeriodEnding AS MaxPeriodEnding
FROM producer
INNER JOIN producer_details ON producer.federal_number = producer_details.federal_number
INNER JOIN statement ON producer.patron_number = statement.patron_number
WHERE producer.patron_number = @PatronNo
這真的取決於你的結果尋找。如果您想爲每個patron_name等組使用MaxStatemetnNumber和MaxEndingPeriod,請使用第一個,否則使用第二個。
- 1. 一個查詢而不是兩個?
- 2. 如何獲得此SQL查詢以輸出兩行而不是兩個字段?
- 3. 如何查詢兩個變量以返回一個結果?
- 4. 查詢返回多個相同的行而不是一個
- 5. 如何調整代碼以使用兩個參數而不是一個?
- 6. 我的查詢返回一個空列表,而不是一個條目
- 7. 除以造成零兩個查詢,TSQL
- 8. 如何修改查詢以遍歷整個表格而不是單個頁面
- 9. mysql查詢返回整個表
- 10. 如果else語句返回兩個而不是一個?
- 11. TSQL查詢從兩個表中
- 12. TSQL查詢 - 返回兩個日期之間的所有秒
- 13. 如何更改此Nokogiri代碼,以便返回HTML而不是內容?
- 14. 有一個子查詢返回的行而不是列
- 15. getResult返回另一個結果,而不是SQL查詢Symfony2
- 16. PostgreSQL查詢返回多行而不是一個
- 17. SQL查詢只返回一個結果/行而不是全部
- 18. qpython.sync()返回一個QProjection,而不是查詢的數據
- 19. 主義 - 查詢返回嵌套的數組,而不是一個
- 20. Mongoid count/size查詢返回一個浮點數而不是integer
- 21. 如何編寫一個查詢返回「between」以返回字母數據,而不僅僅是數字?
- 22. TSQL遍歷兩個查詢插入到另一個表
- 23. SQL查詢,以便從兩個列
- 24. 獲取值而不是整個查詢
- 25. 返回一個布爾值而不是整個集合
- 26. 返回一個值。 TSQL
- 27. 如何從兩個查詢中只返回一個查詢結果
- 28. 查詢返回第二個值,如果有兩個,空,如果只是一個
- 29. criteria.list()返回兩個條目而不是一個
- 30. 總小時數列返回兩個輸出,而不是一個
你應該指定你想要的輸出。 – sgriffinusa 2010-08-18 01:58:50