Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Abfrage über Bit Werte (https://www.delphipraxis.net/91134-sql-abfrage-ueber-bit-werte.html)

renekr 30. Apr 2007 08:57

Datenbank: SQL Server • Version: 2005 • Zugriff über: ADO

SQL Abfrage über Bit Werte
 
Hi,

Hoffe mir kann jemand kurz helfen?

Stehe grad auf dem schlauch.

Ich habe eine Tabelle mit Paketservice,Barcode,Datum,Bit Feld.

Nun will ich folgendes mache:

Es ist eine Tabelle wo Pakete drin stehen und der Bit Wert sagt ob die Beschädigt sind,oder nicht.

Nun will ich eine Abfrage mache die mir die Anzahl der Pakete für jeden Paketservice gibt und zudem noch die Summe wieviele Pakete beschädigt sind und wieviele nicht.

Ist das realisierbar ,oder nur mit 2 View.

Danke.

mkinzler 30. Apr 2007 09:03

Re: SQL Abfrage über Bit Werte
 
Ist wohl ein Join notwendig

renekr 30. Apr 2007 09:10

Re: SQL Abfrage über Bit Werte
 
Hi,

das auch aber nur um den Paketdienst zu holen aus einer ID raus.

Also ich will die Paketservice Gruppieren.
Das klappt.
SQL-Code:
SELECT    TOP (100) PERCENT dbo.Paketservice.Paketservice, MAX(dbo.Barcodetabelle.Barcode) AS BC, COUNT(dbo.Barcodetabelle.beschaedigt)
                      AS Anzahl
FROM        dbo.Barcodetabelle LEFT OUTER JOIN
                      dbo.Paketservice ON dbo.Barcodetabelle.Paketservice = dbo.Paketservice.ID
GROUP BY dbo.Paketservice.Paketservice
ORDER BY dbo.Paketservice.Paketservice
Nun zeigt sich mir eine Tabelle mit allen PAketservices und dem Letzten Barcode.
Und die Anzahl der Pakete gesamt.

Ich will aber gerne 2 Spalten ,1 mal die wo unter Beschädigt true sind und die anderen wo False sind.

Kann man das überhaupt in 1 View abfragen?

Unter Access gehts so in der Select anweisung mit drin.!

SQL-Code:
 IIf([beschaedigt]=0,1,0) AS IO, IIf([beschaedigt]=-1,1,0) AS NIO

mkinzler 30. Apr 2007 09:14

Re: SQL Abfrage über Bit Werte
 
iif ist ja eine Standard-SQL funktion, wenn MS diese für Access implemnetiert hat, gibt es diese sicherlich aus füe den MSSQL

omata 30. Apr 2007 21:37

Re: SQL Abfrage über Bit Werte
 
Hallo renekr,

deine Datenstruktur und deine Wünsche kann ich nur sehr schwer verstehen/deuten.

Ich versuche es trotzdem mal...
SQL-Code:
SELECT Paketservice, SUM(io) AS io, SUM(nio) AS nio, SUM(anzahl) AS anzahl
FROM (SELECT p.Paketservice,
             CASE WHEN b.beschaedigt = 0 THEN 1 ELSE 0 END AS io,
             CASE WHEN b.beschaedigt = 1 THEN 1 ELSE 0 END AS nio,
             1 AS anzahl
      FROM Barcodetabelle b
      LEFT JOIN Paketservice p
        ON b.Paketservice = p.ID) x
GROUP BY Paketservice
ORDER BY Paketservice
Gruss
Thorsten

Jelly 30. Apr 2007 21:54

Re: SQL Abfrage über Bit Werte
 
Zitat:

Zitat von mkinzler
iif ist ja eine Standard-SQL funktion, wenn MS diese für Access implemnetiert hat, gibt es diese sicherlich aus füe den MSSQL

Das Pendant dazu in MSSQL heisst case.

renekr 1. Mai 2007 09:35

Re: SQL Abfrage über Bit Werte
 
Hi,
danke für die Antworten.

Habe es mittlerweile über 2 Views mit Case realisiert.

Ich werde es aber umbauen udn daruas 1 View machen,der Übersicht halber.


Vielen Dank für die Tipps.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz