hello friends,
I am running below query-
select case WHEN (
select count(1)from( select count(1) as cnt
from WCF_INDENT wi LEFT OUTER JOIN INDENT_INVOICE_DETAILS iid ON wi.WCF_NO=iid.WCF_NO and wi.ITEM_CODE=iid.ITEM_CODE
--where wi.WCF_NO='WC/63912'
group by wi.ITEM_CODE,wi.QTY having SUM(ISNULL(iid.QTY,0))<wi.QTY
UNION
select count(1) as cnt
from VOR_ORDER_DETAILS vod LEFT OUTER JOIN INDENT_INVOICE_DETAILS iid ON vod.ITEM_CODE=iid.ITEM_CODE and vod.VOR_NO=iid.WCF_NO
where vod.VOR_NO='WC/63912'
group by iid.ITEM_CODE,vod.QTY
having SUM(ISNULL(iid.QTY,0))<vod.QTY
)bb
)>0
then 'Partial Dispatch' else 'Full Dispatch' end
but its running continously even query within when clause runs in 1 seconds.
what am I missing?
Is there any way because i will use this query to update a table on the basis of WCF_NO. So i cant put inner query into temp table or any other object.
Following is the update query
update A set A.Dispatch_Status=
(select distinct case WHEN EXISTS ( select count(1) as cnt
from WCF_INDENT wi
LEFT OUTER JOIN INDENT_INVOICE_DETAILS iid ON wi.WCF_NO=iid.WCF_NO and wi.ITEM_CODE=iid.ITEM_CODE
where wi.WCF_NO=A.WCF_NO --83184
group by wi.ITEM_CODE,wi.QTY having SUM(ISNULL(iid.QTY,0))<wi.QTY
UNION
select count(1)
from VOR_ORDER_DETAILS vod
LEFT OUTER JOIN INDENT_INVOICE_DETAILS iid ON vod.ITEM_CODE=iid.ITEM_CODE and vod.VOR_NO=iid.WCF_NO
where vod.VOR_NO=A.WCF_NO--21051
group by iid.ITEM_CODE,vod.QTY
having SUM(ISNULL(iid.QTY,0))<vod.QTY
)
then 'Partial Dispatch'
else 'Full Dispatch' end as AA
from INDENT_INVOICE_DETAILS
)
FRom #T3 A WHERE FSR_REQD='1'
IN this I am updating #T3 on the basis of WCF_No So i cant use table variable in this case.
What I have tried:
I tried--
select case WHEN EXISTS ( select count(1) as cnt
from WCF_INDENT wi LEFT OUTER JOIN INDENT_INVOICE_DETAILS iid ON wi.WCF_NO=iid.WCF_NO and wi.ITEM_CODE=iid.ITEM_CODE
--where wi.WCF_NO='WC/63912' --83184
group by wi.ITEM_CODE,wi.QTY having SUM(ISNULL(iid.QTY,0))<wi.QTY
UNION
select count(1)
from VOR_ORDER_DETAILS vod LEFT OUTER JOIN INDENT_INVOICE_DETAILS iid ON vod.ITEM_CODE=iid.ITEM_CODE and vod.VOR_NO=iid.WCF_NO
where vod.VOR_NO='WC/63912'--21051
group by iid.ITEM_CODE,vod.QTY
having SUM(ISNULL(iid.QTY,0))<vod.QTY
)
then 'y' else 'n' end as AA