2017-05-29 2 views
0

Meine Abfrage funktioniert überhaupt nicht und arbeitete, um zu sehen, was falsch ist, aber nicht finden kann. sagt, dass zwei Werte haben, die gleich sind, aber ehrlich meinen Code Ich tue mein Bestes, um korrekturgelesen:SQL-Abfrage für Datenbank auf Microsoft SQL-Server

SELECT 
"HQCO"."HQCo", 
"HQCO"."Name", 
"JCJP"."Contract", 
"JCJP"."Item", 
"JCJP"."Phase", 
"JCCP"."CostType", 
"JCCI"."Item", 
"JCCI"."Description", 
"JCCP"."Phase", 
"JCJP"."Description", 
"JCCT"."Description", 
"JCCH"."UM", 
"JCCP"."CurrEstUnits", 
"JCCP"."CurrEstCost", 
"JCCP"."ActualUnits", 
"JCCP"."ActualCost", 
"JCCM"."Description", 
"JCJP"."JCCo", 
"JCCP"."ProjCost", 
"JCCP"."RemainCmtdCost", 
"JCCP"."ProjPlug", 
"JCCP"."Mth", 
"JCCI"."BilledAmt", 
"JCCM"."BilledAmt", 
"JCCM"."udGEACrev", 
"JCCP"."Job", 
"JCCM"."Department", 
"JCJM"."ProjectMgr", 
"JCMP"."Name" 

FROM 
(
(((((("Viewpoint"."dbo"."JCCP" "JCCP" 
     INNER JOIN 
     "Viewpoint"."dbo"."HQCO" "HQCO" 
     ON "JCCP"."JCCo" = "HQCO"."HQCo") 
     INNER JOIN 
     "Viewpoint"."dbo"."JCCT" "JCCT" 
     ON ("JCCP"."PhaseGroup" = "JCCT"."PhaseGroup") 
     AND 
     (
      "JCCP"."CostType" = "JCCT"."CostType" 
     ) 
) 
     LEFT OUTER JOIN 
     "Viewpoint"."dbo"."JCCH" "JCCH" 
     ON (((("JCCP"."JCCo" = "JCCH"."JCCo") 
     AND 
     (
      "JCCP"."Job" = "JCCH"."Job" 
     ) 
) 
     AND 
     (
      "JCCP"."PhaseGroup" = "JCCH"."PhaseGroup" 
     ) 
) 
     AND 
     (
      "JCCP"."Phase" = "JCCH"."Phase" 
     ) 
) 
     AND 
     (
      "JCCP"."CostType" = "JCCH"."CostType" 
     ) 
) 
      LEFT OUTER JOIN 
      "Viewpoint"."dbo"."JCJP" "JCJP" 
      ON ((("JCCP"."JCCo" = "JCJP"."JCCo") 
      AND 
     (
      "JCCP"."Job" = "JCJP"."Job" 
     ) 
) 
      AND 
     (
      "JCCP"."PhaseGroup" = "JCJP"."PhaseGroup" 
     ) 
) 
      AND 
     (
      "JCCP"."Phase" = "JCJP"."Phase" 
     ) 
) 
     LEFT OUTER JOIN 
      "Viewpoint"."dbo"."JCCI" "JCCI" 
     ON (("JCJP"."JCCo" = "JCCI"."JCCo") 
     AND 
     (
      "JCJP"."Contract" = "JCCI"."Contract" 
     ) 
) 
     AND 
     (
      "JCJP"."Item" = "JCCI"."Item" 
     ) 
) 
     INNER JOIN 
     "Viewpoint"."dbo"."JCCM" "JCCM" 
     ON ("JCCI"."JCCo" = "JCCM"."JCCo") 
     AND 
     (
      "JCCI"."Contract" = "JCCM"."Contract" 
     ) 
) 
     INNER JOIN 
      "Viewpoint"."dbo"."JCJM" "JCJM" 
      ON ("JCCM"."JCCo" = "JCJM"."JCCo") 
      AND 
     (
      "JCCM"."Contract" = "JCJM"."Job" 
     ) 
    ) 
     LEFT OUTER JOIN 
     "Viewpoint"."dbo"."JCMP" "JCMP" 
     ON ("JCJM"."JCCo" = "JCMP"."JCCo") 
     AND 
     (
      "JCJM"."ProjectMgr" = "JCMP"."ProjectMgr" 
     ) 




WHERE 
    "JCCP"."Mth" < {ts '2017-04-02 00:00:00'} 
    AND "JCJP"."JCCo" = 1 
    AND "JCJM"."ProjectMgr" = 8 
    AND "JCCM"."Department" = '10' 
    ORDER BY 
     "JCJP"."Contract", "JCJP"."Item", "JCJP"."Phase", "JCCP"."CostType" 

Wie Sie alle Tabellen sehen und Werte beziehen und verbunden mit inneren und äußeren verbindet die Ergänzung Tabellen. Es ist für einen Bericht

+0

Was die Fehlermeldung Sie bekommen. Kannst du es hier einfügen? –

+0

Es konnte keine Liste von Feldern für die Abfrage erstellt werden. Stellen Sie sicher, dass Sie eine Verbindung mit der Datenquelle herstellen können und dass die Abfragesyntax korrekt ist. "Ein Artikel mit dem gleichen Schlüssel wurde bereits hinzugefügt –

+0

Hm ... Welches Tool verwenden Sie? –

Antwort

0

Ihre Abfrage hat mehrere Probleme.

1) Problem with parenthese (too '(') 
2) You use left outer join on table and you test a zone of this table -> null will be excluded like it 
3) Multiples Zones in your select with same name 
4) Quotes for zones and alias for tables are not necessary 

Diese Abfrage geblieben von:

SELECT 
HQCO.HQCo, 
HQCO.Name, 
JCJP.Contract, 
JCJP.Item, 
JCJP.Phase, 
JCCP.CostType, 
JCCI.Item, 
JCCI.Description Desc1, 
JCCP.Phase, 
JCJP.Description Desc2, 
JCCT.Description Desc3, 
JCCH.UM, 
JCCP.CurrEstUnits, 
JCCP.CurrEstCost, 
JCCP.ActualUnits, 
JCCP.ActualCost, 
JCCM.Description Desc4, 
JCJP.JCCo, 
JCCP.ProjCost, 
JCCP.RemainCmtdCost, 
JCCP.ProjPlug, 
JCCP.Mth, 
JCCI.BilledAmt BilledAmt1, 
JCCM.BilledAmt BilledAmt2, 
JCCM.udGEACrev, 
JCCP.Job, 
JCCM.Department, 
JCJM.ProjectMgr, 
JCMP.Name Name2 

FROM 
     Viewpoint.dbo.JCCP 
     INNER JOIN Viewpoint.dbo.HQCO ON JCCP.JCCo = HQCO.HQCo 
     INNER JOIN Viewpoint.dbo.JCCT ON JCCP.PhaseGroup = JCCT.PhaseGroup AND JCCP.CostType = JCCT.CostType 
     LEFT OUTER JOIN Viewpoint.dbo.JCCH ON JCCP.JCCo = JCCH.JCCo AND JCCP.Job = JCCH.Job 
     AND JCCP.PhaseGroup = JCCH.PhaseGroup AND JCCP.Phase = JCCH.Phase AND JCCP.CostType = JCCH.CostType 
     LEFT OUTER JOIN Viewpoint.dbo.JCJP ON JCCP.JCCo = JCJP.JCCo AND JCCP.Job = JCJP.Job 
     AND JCCP.PhaseGroup = JCJP.PhaseGroup AND JCCP.Phase = JCJP.Phase AND JCJP.JCCo = 1 
     LEFT OUTER JOIN Viewpoint.dbo.JCCI ON JCJP.JCCo = JCCI.JCCo AND JCJP.Contract = JCCI.Contract AND JCJP.Item = JCCI.Item 
     INNER JOIN Viewpoint.dbo.JCCM ON JCCI.JCCo = JCCM.JCCo AND JCCI.Contract = JCCM.Contract 
     INNER JOIN Viewpoint.dbo.JCJM ON JCCM.JCCo = JCJM.JCCo AND JCCM.Contract = JCJM.Job 
     LEFT OUTER JOIN Viewpoint.dbo.JCMP ON JCJM.JCCo = JCMP.JCCo AND JCJM.ProjectMgr = JCMP.ProjectMgr 

WHERE 
    JCCP.Mth < {ts '2017-04-02 00:00:00'} 
    AND JCJM.ProjectMgr = 8 
    AND JCCM.Department = '10' 
ORDER BY JCJP.Contract, JCJP.Item, JCJP.Phase, JCCP.CostType 
+0

Macht Sinn, aber immer noch meine SQL Server Report Builder geben Sie mir die gleiche Fehlermeldung, die ist: Konnte nicht Erstellen Sie eine Liste der Felder für die Abfrage Überprüfen Sie, dass Sie eine Verbindung mit der Datenquelle herstellen können und dass die Abfragesyntax korrekt ist "Ein Element mit demselben Schlüssel wurde bereits hinzugefügt" –

+0

In der Tat dachte ich über die gemeinsamen Variablen aus verschiedenen Tabellen wie diese. vON JCJP AS t1 INNER JCCP AS t2 JOIN ON t2.Phase = t1.PrimaryKey INNER JOIN JCCI AS t3 ON t3.Description = t1. PrimaryKey UND AN t3.BilledAmt = t1.PrimaryKey INNERER JOIN JCCM AS t4 EIN t4.Description = t1.PrimaryKey UND AN t4.BilledAmt = t1.PrimaryKey –

Verwandte Themen