我有兩個查詢,並希望將它們合併。我希望只有滿足特定條件才能執行第一個查詢,而第二個查詢則基於另一個條件執行,因此每次只能執行其中一個。最初這是一個SP,但我將其改爲查詢以便能夠輕鬆修改和處理錯誤。 這裏是查詢,我使用連接將它們組合在一起。如何執行特定的條件查詢
,因爲我會在一個報告中使用它們(帶參數水晶報表)
1查詢 在這裏,我需要把if語句包含一個參數,我不能把它們分開,其將被聲明爲int,如果參數值等於某個值,則該查詢將被執行,而第二個查詢將被忽略。如果它不匹配,則應將該值傳遞給第二個查詢中的第二個if語句。
SELECT odrf.DocEntry, odrf.CntctCode,drf1.SubCatNum, odrf.Address2, drf1.LineNum, odrf.DocType, odrf.CANCELED, odrf.Handwrtten, odrf.DocStatus, odrf.Transfered, odrf.DocDate, odrf.DocDueDate,
odrf.CardCode, odrf.Printed, odrf.CardName, odrf.Address, odrf.NumAtCard, odrf.VatPercent, odrf.VatSum, odrf.VatSumFC, odrf.DiscPrcnt, odrf.DiscSumFC,
odrf.DiscSum, odrf.PaidToDate, odrf.DocTotalFC, odrf.DocTotal, odrf.DocRate, odrf.Comments, odrf.VatSumSy, odrf.DocTotalSy,odrf.NumAtCard, odrf.CreateDate, odrf.DocNum, drf1.U_LCCP,
odrf.TaxDate, drf1.ItemCode, drf1.Dscription, drf1.Price, drf1.DiscPrcnt AS Expr1, drf1.Rate, drf1.Quantity, drf1.StockSum, drf1.unitMsr, drf1.BaseDocNum,drf1.LineTotal, nnm1.seriesname
FROM odrf INNER JOIN
drf1 ON odrf.DocEntry = drf1.DocEntry
inner join nnm1 on odrf.series = nnm1.series
where ODRF.DocEntry = {[email protected]} and odrf.ObjType = 15
UNION
第二查詢 這裏也是我需要把一個if語句將檢查參數(在第一次查詢中使用相同的參數)等於特定值。如果是這樣,那麼這個查詢將被執行。
SELECT odln.DocEntry, odln.CntctCode,dln1.SubCatNum, odln.Address2, dln1.LineNum, odln.DocType, odln.CANCELED, odln.Handwrtten, odln.DocStatus, odln.Transfered, odln.DocDate, odln.DocDueDate,
odln.CardCode, odln.Printed, odln.CardName, odln.Address, odln.NumAtCard, odln.VatPercent, odln.VatSum, odln.VatSumFC, odln.DiscPrcnt, odln.DiscSumFC,
odln.DiscSum, odln.PaidToDate, odln.DocTotalFC, odln.DocTotal, odln.DocRate, odln.Comments, odln.VatSumSy, odln.DocTotalSy,ODLN.NumAtCard, odln.CreateDate, ODLN.DocNum, dln1.U_LCCP,
odln.TaxDate, dln1.ItemCode, dln1.Dscription, dln1.Price, dln1.DiscPrcnt AS Expr1, dln1.Rate, dln1.Quantity, dln1.StockSum, dln1.unitMsr, dln1.BaseDocNum,dln1.LineTotal, nnm1.seriesname
FROM odln INNER JOIN
dln1 ON odln.DocEntry = dln1.DocEntry
inner join nnm1 on odln.series = nnm1.series
where odln.DocEntry = {[email protected]}
問題是什麼?您不需要IF,只需將您的參數添加到兩個WHERE子句中即可。 – 2014-09-04 12:29:27
以及我需要如果指定最好的查詢應該運行,否則他們都將exicute和數據將來自兩個quieris – user3665959 2014-09-04 12:34:25