Hej, nu är man här igen och frågar.. blir inte klok på detta :) En DISTINCT tar hela raden, du får med 2 Patrik för att Recipientgroup är olika på dessa poster... Hmm, men det måste väl finnas något sett att kolla om namnet redan finns med i samma ScheduleID? Jo ok.. får väl göra så men helst skulle jag vilja så att den tog med gruppen också. Den började att ta alla som har grupp och sen om samma namn finns fast utan grupp så skulle den utesluta namnet. Om alla har minst en rad MED grupp så kan du väl bara utesluta dem utan grupp? Men det är inte säkert att dom är med i någon grupp. Testa:Inte visa dubletter
Min Log-tabell ser ut på detta sättet ungefär:
<code>ScheduleID RecipientName RecipientGroup ScheduleMedium
45 Patrik Ahlberg Anställda SMS
45 Oscar Jansson Anställda SMS
45 Patrik Ahlberg SMS
46 Rickard Andersson SMS</code>
Osv osv..
Att Patrik finns på två ställen är för att användaren har valt att skicka både till gruppen Anställde och sen valt Patrik från listan av mottagare. Det loggas så men det skickas bara ett sms till Patrik.
När man ska debitera (som om det skulle hända) så ska det alltså bara räknas som om Patrik fått ett sms och inte två. Men hur ska jag göra för att lista alla poster men inte dubletter av Patrik?
Har testat så här utan resultat:
<code>CREATE PROCEDURE selectLogByDate
@CompanyName nvarchar(50),
@StartDate datetime,
@FinishDate datetime
AS
SELECT
DISTINCT RecipientName,
ScheduleID,
RecipientGroup,
ScheduleMedium
FROM
Log
WHERE
CompanyName = @CompanyName AND
LogDate >= @StartDate AND
LogDate <= @FinishDate
ORDER BY
ScheduleID, RecipientGroup DESC
GO</code>Sv: Inte visa dubletter
Skippa Recipientgroup så funkar det.
/mickeSv: Inte visa dubletter
Vill helst inte behöva göra om hela databasmodellen och koda om allt :)Sv: Inte visa dubletter
Men det kanske inte går att lösa på något smidigt sett så jag får göra som du sa.
Tack!
Ps.. håller tråden öppen ett litet tag till Ds.Sv: Inte visa dubletter
Sv: Inte visa dubletter
Där man gör sin schemaläggning så kan man välja att dra in både grupper och mottagare.
Och om man väljer en mottagare som redan finns i en vald mottagargrupp så blir det dubletter som jag vill bli av med.
Eller det ska finnas kvar i logg-tabellen men inte finnas med på debiteringssidan.Sv: Inte visa dubletter
<code>
SELECT
RecipientName,
ScheduleID,
MAX(RecipientGroup) as RecipientGroup,
ScheduleMedium
FROM
Log
WHERE
CompanyName = @CompanyName AND
LogDate >= @StartDate AND
LogDate <= @FinishDate
GROUP BY RecipientName, ScheduleID, ScheduleMedium
ORDER BY
ScheduleID
</code>
Här får du bara en rad om de är distincta förutom RecipientGroup.