Declare OccasionName Varchar(100)
set @OccasionName=(select distinct (Message) from OrderProducts
where message like '%b''day%' or message like '%bday%' or Message like '%Birth%')
select Count(Distinct od.OrderID) as TotalOrders from orderdetails od
inner join (select Orderid,Message from OrderProducts) op on od.Orderid=op.OrderiD
where od.Orderdate between '01/01/2015' and '01/05/2015'
and op.Message like '%' + @OccasionName + '%'
and (od.TransactionId is not null) AND (od.TransactionId<>'')
Dies ist der Fehler:Gelegenheit weise Orders Count
Subquery mehr als 1 Wert zurückgegeben. Dies ist nicht zulässig, wenn die Unterabfrage folgt =,! =, <, < =,>,> = oder wenn die Unterabfrage als Ausdruck verwendet wird.
Distinct ist keine Funktion, es ist ein Teil von 'Select distinct' und wirkt auf die gesamten ausgewählten Zeilen. – jarlh
Was verstehst du nicht? Sie haben mehr als eine passende Nachricht in 'OrderProduct'. –
Sie versuchen, das Ergebnis dieser '(wählen Sie eindeutig (Message) von OrderProducts wo Nachricht wie '% b''day%' oder Nachricht wie '% Bday%' oder Nachricht wie '% Birth%')' zu ' @OrtName'. Aber es scheint, als ob es dir mehr als 1 Reihe gibt. –