Results 1 to 5 of 5
  1. #1
    Join Date
    Oct 2005
    Posts
    183

    Unanswered: Access SQL to SQL-Server - what humbug?

    I got a query here, that I don't quite know how to recreate in SQL-Server.

    The result it returns, is duplicate sets from a specific table. But thw Where in clause is all black in my oppinion.

    The [Rettet af DR] field is a boolean field, so I simply do not understand how Access can return the duplicate records without returning everything with values 1 or 0.

    Cheers, Trinsan

    Code:
    SELECT [Programlinier med rapporteringsdato].[Rettet af DR], [Programlinier med rapporteringsdato].Stationskode, [Programlinier med rapporteringsdato].Udsendelsesdato, [Programlinier med rapporteringsdato].[Udsendelses starttid], [Programlinier med rapporteringsdato].MUSANummer, [Programlinier med rapporteringsdato].Side, [Programlinier med rapporteringsdato].Tracknummer, [Programlinier med rapporteringsdato].Spilletid, [Programlinier med rapporteringsdato].Tracktitel, [Programlinier med rapporteringsdato].[Hoved artist], [Programlinier med rapporteringsdato].Rapporteringsdato, [Programlinier med rapporteringsdato].Mediekode, [Programlinier med rapporteringsdato].Producentlandekode, [Programlinier med rapporteringsdato].Plademærkenavn, [Programlinier med rapporteringsdato].Katalogbetegnelse, [Programlinier med rapporteringsdato].Indspilningsår, [Programlinier med rapporteringsdato].Fonogramtitel, [Programlinier med rapporteringsdato].[Antal opførelser], [Programlinier med rapporteringsdato].[Tape Kilde], [Programlinier med rapporteringsdato].[Rettet af DR], [Programlinier med rapporteringsdato].Produktionsnummer
    FROM [Programlinier med rapporteringsdato]
    WHERE ((([Programlinier med rapporteringsdato].[Rettet af DR]) In (SELECT [Rettet af DR] FROM [Programlinier med rapporteringsdato] As Tmp GROUP BY [Rettet af DR],[Stationskode],[Udsendelsesdato],[Udsendelses starttid],[MUSANummer],[Side],[Tracknummer],[Spilletid],[Tracktitel],[Hoved artist] HAVING Count(*)>1  And [Stationskode] = [Programlinier med rapporteringsdato].[Stationskode] And [Udsendelsesdato] = [Programlinier med rapporteringsdato].[Udsendelsesdato] And [Udsendelses starttid] = [Programlinier med rapporteringsdato].[Udsendelses starttid] And [MUSANummer] = [Programlinier med rapporteringsdato].[MUSANummer] And [Side] = [Programlinier med rapporteringsdato].[Side] And [Tracknummer] = [Programlinier med rapporteringsdato].[Tracknummer] And [Spilletid] = [Programlinier med rapporteringsdato].[Spilletid] And [Tracktitel] = [Programlinier med rapporteringsdato].[Tracktitel] And [Hoved artist] = [Programlinier med rapporteringsdato].[Hoved artist])))
    ORDER BY [Programlinier med rapporteringsdato].Stationskode, [Programlinier med rapporteringsdato].Udsendelsesdato, [Programlinier med rapporteringsdato].[Udsendelses starttid], [Programlinier med rapporteringsdato].MUSANummer, [Programlinier med rapporteringsdato].Side, [Programlinier med rapporteringsdato].Tracknummer, [Programlinier med rapporteringsdato].Spilletid, [Programlinier med rapporteringsdato].Tracktitel, [Programlinier med rapporteringsdato].[Hoved artist], [Programlinier med rapporteringsdato].Rapporteringsdato, [Programlinier med rapporteringsdato].Mediekode, [Programlinier med rapporteringsdato].Producentlandekode, [Programlinier med rapporteringsdato].Plademærkenavn, [Programlinier med rapporteringsdato].Katalogbetegnelse, [Programlinier med rapporteringsdato].Indspilningsår, [Programlinier med rapporteringsdato].Fonogramtitel, [Programlinier med rapporteringsdato].[Antal opførelser], [Programlinier med rapporteringsdato].[Tape Kilde];
    Here's the translation have made so far. A few change of names, as I have built a view instead of referencing the table directly.

    Code:
    SELECT [Rettet af DR],Stationskode, Udsendelsesdato, [Udsendelses starttid], MUSANummer, Side, Tracknummer, Spilletid, Tracktitel, [Hoved artist], Rapporteringsdato, Mediekode, Producentlandekode, Plademærkenavn, Katalogbetegnelse, Indspilningsår, Fonogramtitel, [Antal opførelser], [Tape Kilde], [Rettet af DR], Produktionsnummer
    FROM KONTROL_vw_DRdobbeltrappbasis
    WHERE ((([Rettet af DR]) In (SELECT [Rettet af DR] FROM KONTROL_vw_DRdobbeltrappbasis As Tmp GROUP BY [Rettet af DR],[Stationskode],[Udsendelsesdato],[Udsendelses starttid],[MUSANummer],[Side],[Tracknummer],[Spilletid],[Tracktitel],[Hoved artist] HAVING Count(*)>1  And [Stationskode] = KONTROL_vw_DRdobbeltrappbasis.[Stationskode] And [Udsendelsesdato] = KONTROL_vw_DRdobbeltrappbasis.[Udsendelsesdato] And [Udsendelses starttid] = KONTROL_vw_DRdobbeltrappbasis.[Udsendelses starttid] And [MUSANummer] = KONTROL_vw_DRdobbeltrappbasis.[MUSANummer] And [Side] = KONTROL_vw_DRdobbeltrappbasis.[Side] And [Tracknummer] = KONTROL_vw_DRdobbeltrappbasis.[Tracknummer] And [Spilletid] = KONTROL_vw_DRdobbeltrappbasis.[Spilletid] And [Tracktitel] = KONTROL_vw_DRdobbeltrappbasis.[Tracktitel] And [Hoved artist] = KONTROL_vw_DRdobbeltrappbasis.[Hoved artist])))
    ORDER BY Stationskode, Udsendelsesdato, [Udsendelses starttid], MUSANummer, Side, Tracknummer, Spilletid, Tracktitel, [Hoved artist], Rapporteringsdato, Mediekode, Producentlandekode, Plademærkenavn, Katalogbetegnelse, Indspilningsår, Fonogramtitel, [Antal opførelser], [Tape Kilde]
    Last edited by Trinsan; 08-18-06 at 06:36.
    IT squid: networks, servers, firewalls, routers and I dabble a little with SQL-server and Access as well....

  2. #2
    Join Date
    Feb 2004
    Location
    One Flump in One Place
    Posts
    14,912
    There aren't actually any syntax changes requried. I formatted it and added an optimisation that I would expect the optimiser to pick up anyway. I'm not certain what your question is... is it "what does this query do?"

    EDIT - flipping board won't keep my formatting
    Code:
    SELECT  [Programlinier med rapporteringsdato].[Rettet af DR], 
     [Programlinier med rapporteringsdato].Stationskode, 
     [Programlinier med rapporteringsdato].Udsendelsesdato, 
     [Programlinier med rapporteringsdato].[Udsendelses starttid], 
     [Programlinier med rapporteringsdato].MUSANummer, 
     [Programlinier med rapporteringsdato].Side, 
     [Programlinier med rapporteringsdato].Tracknummer, 
     [Programlinier med rapporteringsdato].Spilletid, 
     [Programlinier med rapporteringsdato].Tracktitel, 
     [Programlinier med rapporteringsdato].[Hoved artist], 
     [Programlinier med rapporteringsdato].Rapporteringsdato, 
     [Programlinier med rapporteringsdato].Mediekode, 
     [Programlinier med rapporteringsdato].Producentlandekode, 
     [Programlinier med rapporteringsdato].Plademærkenavn, 
     [Programlinier med rapporteringsdato].Katalogbetegnelse, 
     [Programlinier med rapporteringsdato].Indspilningsår, 
     [Programlinier med rapporteringsdato].Fonogramtitel, 
     [Programlinier med rapporteringsdato].[Antal opførelser], 
     [Programlinier med rapporteringsdato].[Tape Kilde], 
     [Programlinier med rapporteringsdato].[Rettet af DR], 
     [Programlinier med rapporteringsdato].Produktionsnummer
    FROM  [Programlinier med rapporteringsdato]
    WHERE  [Programlinier med rapporteringsdato].[Rettet af DR] IN 
      (SELECT [Rettet af DR] 
      FROM  [Programlinier med rapporteringsdato] As Tmp 
      GROUP BY 
      [Rettet af DR], 
      [Stationskode],
      [Udsendelsesdato],
      [Udsendelses starttid],
      [MUSANummer],[Side],
      [Tracknummer],
      [Spilletid],
      [Tracktitel],
      [Hoved artist] 
      WHERE [Stationskode] = [Programlinier med rapporteringsdato].[Stationskode] 
       AND [Udsendelsesdato] = [Programlinier med rapporteringsdato].[Udsendelsesdato] 
       AND [Udsendelses starttid] = [Programlinier med rapporteringsdato].[Udsendelses starttid] 
       AND [MUSANummer] = [Programlinier med rapporteringsdato].[MUSANummer] 
       AND [Side] = [Programlinier med rapporteringsdato].[Side] 
       And [Tracknummer] = [Programlinier med rapporteringsdato].[Tracknummer] 
       And [Spilletid] = [Programlinier med rapporteringsdato].[Spilletid] 
       And [Tracktitel] = [Programlinier med rapporteringsdato].[Tracktitel]  
       AND [Hoved artist] = [Programlinier med rapporteringsdato].[Hoved artist]
      HAVING  COUNT(*)>1)
    ORDER BY 
     [Programlinier med rapporteringsdato].Stationskode, 
     [Programlinier med rapporteringsdato].Udsendelsesdato, 
     [Programlinier med rapporteringsdato].[Udsendelses starttid], 
     [Programlinier med rapporteringsdato].MUSANummer, 
     [Programlinier med rapporteringsdato].Side, 
     [Programlinier med rapporteringsdato].Tracknummer, 
     [Programlinier med rapporteringsdato].Spilletid, 
     [Programlinier med rapporteringsdato].Tracktitel, 
     [Programlinier med rapporteringsdato].[Hoved artist], 
     [Programlinier med rapporteringsdato].Rapporteringsdato, 
     [Programlinier med rapporteringsdato].Mediekode, 
     [Programlinier med rapporteringsdato].Producentlandekode, 
     [Programlinier med rapporteringsdato].Plademærkenavn, 
     [Programlinier med rapporteringsdato].Katalogbetegnelse, 
     [Programlinier med rapporteringsdato].Indspilningsår, 
     [Programlinier med rapporteringsdato].Fonogramtitel, 
     [Programlinier med rapporteringsdato].[Antal opførelser], 
     [Programlinier med rapporteringsdato].[Tape Kilde]
    Last edited by pootle flump; 08-18-06 at 08:13.
    Testimonial:
    pootle flump
    ur codings are working excelent.

  3. #3
    Join Date
    Mar 2003
    Location
    The Bottom of The Barrel
    Posts
    6,102
    Provided Answers: 1
    The WHERE and GROUP BY clauses are in the wrong order in that subquery.
    oh yeah... documentation... I have heard of that.

    *** What Do You Want In The MS Access Forum? ***

  4. #4
    Join Date
    Feb 2004
    Location
    One Flump in One Place
    Posts
    14,912
    Quote Originally Posted by Teddy
    The WHERE and GROUP BY clauses are in the wrong order in that subquery.
    Oops. Correct
    Testimonial:
    pootle flump
    ur codings are working excelent.

  5. #5
    Join Date
    Oct 2005
    Posts
    183
    I found the root to my problem.

    The problem I was fighting, was the difference in amount of rows displayed by the queries, making me believe that I had something wrong in the rewriting of the query.

    Well. The query was just fine, but it turned out that the SQL-Server is case sensitive.

    When running the query from Access on a linked table, the query doesn't care for case sensitivity, but when run as a sproc on sql-server, it is.

    So now al I have to do is make the sprox act CI wise on the having clause.

    Cheers, Trin
    IT squid: networks, servers, firewalls, routers and I dabble a little with SQL-server and Access as well....

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •